Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, MaxS, Вы писали:
MS>Всем привет!
MS>Подскажите как храняться картинки в RTF, а именно как преобразовать GIF после распаковки в RTF?
F>Насколько я помню, все бинарные данные в RTF хранятся в виде HEX-кодов в текстовом виде (F0, D5 и т.д.)... Подробнее — в описании формата RTF
В спецификации RTF, к сожалению про HEX — коды написано очень мало, почти ничего. Например, картика в 1 pixel
зеленого цвета храниться так:
MS>Не знаю как к этому подступиться???
Ну как-как. Описание почитать. Там все есть.
Конкретно, эта картинка в формате WMF (\wmetafile8). Ее размер в документе приблизительно 35 x 35 twips —
\picw35\pich35. Читаешь хексы и преобразуешь из в массив байт. Вот тебе и готовый WMF-ник.
Здравствуйте, MaxS, Вы писали:
MS>В спецификации RTF, к сожалению про HEX — коды написано очень мало, почти ничего. Например, картика в 1 pixel MS>зеленого цвета храниться так:
MS>
MS>Возможно должен быть еще какой-то заголовок wmf-файла или что-то еще? К>Немудрено. Сказал, что метафайл, а кинул битмап.
Это уж никак не битмап. В принципе, ворд может от большого ума и
забить на \wmetafile8 и парсить сразу заголовок. Не уверен.
MS>Подскажите как храняться картинки в RTF, а именно как преобразовать GIF после распаковки в RTF?
Кстати говоря, ворд гифы не понимает принципиально, бо как 3rd side формат. Так что придется гиф
конвертнуть в PNG, BMP (которые, кстати, сам ворд всегда заворачивает в WMF — ппо моему, некпосредственно
BMP воткнуть в RTF не выйдет) или непосредственно в WMF. JPEG и TIFF тут наверное не канают, хотя ворд их
тоже понимает. PNG может не поддерживаться старыми вордами. так что самый безопасный путь наверное —
втыкать WMF.
MS>Возможно должен быть еще какой-то заголовок wmf-файла или что-то еще? К>Немудрено. Сказал, что метафайл, а кинул битмап.
К>Лезем в MSDN, читаем про формат RTF. К>(на всякий случай, выдрал. бери тут: http://www.rsdn.ru/File/4783/rtfspec.zip)
К>Ищи \pict и читай.
Спасибо, за спецификацию такую подробную я еще не встречал.
На сколько я понял нужно вместо \wmetafile писать \wbitmap
и сбрасывать в RTF, вернет
GetBitmapBits
Еще раз всем спасибо. Спасибо еще dmz.
Трудно ничего не делать, но мы не боимся трудностей.