Упаковка изображения, хранимого в TBitmap, в OleVariant для передачи по COM-DCOM
Автор: Бармалей
WEB-сайт: http://delphibase.endimus.com
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Упаковка изображения, хранимого в TBitmap,
в OleVariant для передачи по COM/DCOM
Зависимости: Classes
Автор: Бармалей, barma@amazonit.ru
Copyright: (с) Муханов Игорь Станиславович, г.Москва, 2002 г.
Дата: 29 апреля 2002 г.
***************************************************** }
function SaveBitmapToVariant(Bitmap: TBitmap): OleVariant;
// Сохранение изображения из TBitmap в OleVariant
var
Stream: TMemoryStream;
Buffer: OleVariant;
PBuffer: pointer;
begin
Result := varEmpty;
Stream := TMemoryStream.Create;
Bitmap.SaveToStream(Stream);
Buffer := VarArrayCreate([0, Stream.Size - 1], VarByte);
PBuffer := VarArrayLock(Buffer);
try
Stream.Position := 0;
Stream.Read(PBuffer^, Stream.Size);
finally
VarArrayUnlock(Buffer);
Stream.Free;
end;
Result := Buffer;
end;
|