![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Упаковка изображения, хранимого в TBitmap, в OleVariant для передачи по COM-DCOMDelphi , Технологии , COM и DCOM
Автор: Бармалей { **** 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; Перевод контента на русский язык: Функция Delphi, именуемая Вот шаг за шагом, что функция делает:
Цель этой функции - конвертировать изображение Один из возможных улучшений мог бы быть добавлением обработки ошибок для случаев, когда битмап не может быть сохранен в поток (например, из-за ситуации "диск полон"). Кроме того, может быть полезно добавить возможность сжатия данных изображения перед упаковкой их в массив Вот обновленная версия функции с обработкой ошибок и сжатием:
В обновленной версии я добавил параметр Функция SaveBitmapToVariant упаковывает изображение из TBitmap в OleVariant для последующей передачи по COM/DCOM. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: COM и DCOM ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |