Как конвертировать bitmap в RTF кодDelphi , Графика и Игры , BitmapАвтор: http://www.swissdelphicenter.ch function BitmapToRTF(pict: TBitmap): string; var bi, bb, rtf: string; bis, bbs: Cardinal; achar: ShortString; hexpict: string; I: Integer; begin GetDIBSizes(pict.Handle, bis, bbs); SetLength(bi, bis); SetLength(bb, bbs); GetDIB(pict.Handle, pict.Palette, PChar(bi)^, PChar(bb)^); rtf := '{\rtf1 {\pict\dibitmap0 '; SetLength(hexpict, (Length(bb) + Length(bi)) * 2); I := 2; for bis := 1 to Length(bi) do begin achar := IntToHex(Integer(bi[bis]), 2); hexpict[I - 1] := achar[1]; hexpict[I] := achar[2]; Inc(I, 2); end; for bbs := 1 to Length(bb) do begin achar := IntToHex(Integer(bb[bbs]), 2); hexpict[I - 1] := achar[1]; hexpict[I] := achar[2]; Inc(I, 2); end; rtf := rtf + hexpict + ' }}'; Result := rtf; end; Программная функция Delphi, именуемая
Цель этой функции, вероятно, заключается в том, чтобы позволить вставлять изображение битмапа в документ RTF. Однако, есть некоторые потенциальные проблемы с этим реализацией:
Вот альтернативное решение, использующее более надежный подход:
В этом реализационном коде используются классы Обратите внимание, что это реализация требует Delphi 2009 или позднее, так как она использует класс Конвертация bitmap в RTF код позволяет использовать функцию BitmapToRTF, которая преобразует изображение в строку с помощью процедуры GetDIB и последующего форматирования данных в виде hexadecimal-строки. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |