хранение картинок в RTF - формате
От: MaxS Удмуртия http://www.sautin.com
Дата: 28.04.03 10:41
Оценка:
Всем привет!

Подскажите как храняться картинки в RTF, а именно как преобразовать GIF после распаковки в RTF?

28.04.03 15:41: Перенесено модератором из 'Алгоритмы' — _MM_
Трудно ничего не делать, но мы не боимся трудностей.
Re: хранение картинок в RTF - формате
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 28.04.03 10:54
Оценка:
Здравствуйте, MaxS, Вы писали:

MS>Всем привет!


MS>Подскажите как храняться картинки в RTF, а именно как преобразовать GIF после распаковки в RTF?


Насколько я помню, все бинарные данные в RTF хранятся в виде HEX-кодов в текстовом виде (F0, D5 и т.д.)... Подробнее — в описании формата RTF
Re[2]: хранение картинок в RTF - формате
От: MaxS Удмуртия http://www.sautin.com
Дата: 28.04.03 11:39
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Здравствуйте, MaxS, Вы писали:


MS>Всем привет!


MS>Подскажите как храняться картинки в RTF, а именно как преобразовать GIF после распаковки в RTF?


F>Насколько я помню, все бинарные данные в RTF хранятся в виде HEX-кодов в текстовом виде (F0, D5 и т.д.)... Подробнее — в описании формата RTF


В спецификации RTF, к сожалению про HEX — коды написано очень мало, почти ничего. Например, картика в 1 pixel
зеленого цвета храниться так:

{\pict\wmetafile8\picw35\pich35\picwgoal20\pichgoal20 
0100090000033a0000000000240000000000050000000b0200000000050000000c022300230024
000000430f2000cc00000001000100000000002300230000000000280000000100000001000000
010018000000000004000000120b0000120b0000000000000000000000ff0000030000000000
}


Не знаю как к этому подступиться???
Трудно ничего не делать, но мы не боимся трудностей.
Re[3]: хранение картинок в RTF - формате
От: dmz Россия  
Дата: 29.04.03 06:09
Оценка:
MS>В спецификации RTF, к сожалению про HEX — коды написано очень мало, почти ничего. Например, картика в 1 MS>зеленого цвета храниться так:

Ну а что там писать? каждая пара значений XX — один байт.

MS>
MS>{\pict\wmetafile8\picw35\pich35\picwgoal20\pichgoal20 
MS>0100090000033a0000000000240000000000050000000b0200000000050000000c022300230024
MS>000000430f2000cc00000001000100000000002300230000000000280000000100000001000000
MS>010018000000000004000000120b0000120b0000000000000000000000ff0000030000000000
MS>}
MS>


MS>Не знаю как к этому подступиться???

Ну как-как. Описание почитать. Там все есть.

Конкретно, эта картинка в формате WMF (\wmetafile8). Ее размер в документе приблизительно 35 x 35 twips —
\picw35\pich35. Читаешь хексы и преобразуешь из в массив байт. Вот тебе и готовый WMF-ник.
Re[3]: хранение картинок в RTF - формате
От: Кодт Россия  
Дата: 29.04.03 07:18
Оценка:
Здравствуйте, MaxS, Вы писали:

MS>В спецификации RTF, к сожалению про HEX — коды написано очень мало, почти ничего. Например, картика в 1 pixel

MS>зеленого цвета храниться так:

MS>
MS>{\pict\wmetafile8\picw35\pich35\picwgoal20\pichgoal20 
MS>0100090000033a0000000000240000000000050000000b0200000000050000000c022300230024
MS>000000430f2000cc00000001000100000000002300230000000000280000000100000001000000
MS>010018000000000004000000120b0000120b0000000000000000000000ff0000030000000000
MS>}
MS>


Это Ворд записал метафайл, в котором есть картинка. Поэтому такая туча данных...
(=^.^=) Neko ... << RSDN@Home 1.0 beta 6a >>
Перекуём баги на фичи!
Re[4]: хранение картинок в RTF - формате
От: MaxS Удмуртия http://www.sautin.com
Дата: 29.04.03 09:37
Оценка:
Здравствуйте, Кодт

Вот попробовал написать просто набор Hex — кодов, но ничего не отображается


{\pict\wmetafile8\picw26\pich26 
FF0011EE}


Возможно должен быть еще какой-то заголовок wmf-файла или что-то еще?
Трудно ничего не делать, но мы не боимся трудностей.
Re[5]: хранение картинок в RTF - формате
От: Кодт Россия  
Дата: 29.04.03 10:41
Оценка: 9 (2)
Здравствуйте, MaxS, Вы писали:

MS>Вот попробовал написать просто набор Hex — кодов, но ничего не отображается

MS>{\pict\wmetafile8\picw26\pich26 
MS>FF0011EE}

MS>Возможно должен быть еще какой-то заголовок wmf-файла или что-то еще?
Немудрено. Сказал, что метафайл, а кинул битмап.

Лезем в MSDN, читаем про формат RTF.
(на всякий случай, выдрал. бери тут: http://www.rsdn.ru/File/4783/rtfspec.zip)

Ищи \pict и читай.
(=^.^=) Neko ... << RSDN@Home 1.0 beta 6a >>
Перекуём баги на фичи!
Re[5]: хранение картинок в RTF - формате
От: dmz Россия  
Дата: 29.04.03 11:04
Оценка:
MS>
MS>{\pict\wmetafile8\picw26\pich26 
MS>FF0011EE}
MS>


MS>Возможно должен быть еще какой-то заголовок wmf-файла или что-то еще?

Это обычный windows metafile (EMF или WMF), естественно со своим заголовком.
Re[6]: хранение картинок в RTF - формате
От: dmz Россия  
Дата: 29.04.03 11:08
Оценка:
К>
MS>{\pict\wmetafile8\picw26\pich26 
MS>FF0011EE}
К>

MS>Возможно должен быть еще какой-то заголовок wmf-файла или что-то еще?
К>Немудрено. Сказал, что метафайл, а кинул битмап.
Это уж никак не битмап. В принципе, ворд может от большого ума и
забить на \wmetafile8 и парсить сразу заголовок. Не уверен.
Re: хранение картинок в RTF - формате
От: dmz Россия  
Дата: 29.04.03 11:12
Оценка: 2 (1)
MS>Подскажите как храняться картинки в RTF, а именно как преобразовать GIF после распаковки в RTF?
Кстати говоря, ворд гифы не понимает принципиально, бо как 3rd side формат. Так что придется гиф
конвертнуть в PNG, BMP (которые, кстати, сам ворд всегда заворачивает в WMF — ппо моему, некпосредственно
BMP воткнуть в RTF не выйдет) или непосредственно в WMF. JPEG и TIFF тут наверное не канают, хотя ворд их
тоже понимает. PNG может не поддерживаться старыми вордами. так что самый безопасный путь наверное —
втыкать WMF.
Re[6]: хранение картинок в RTF - формате
От: MaxS Удмуртия http://www.sautin.com
Дата: 29.04.03 14:52
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, MaxS, Вы писали:


MS>Вот попробовал написать просто набор Hex — кодов, но ничего не отображается

К>
MS>{\pict\wmetafile8\picw26\pich26 
MS>FF0011EE}
К>

MS>Возможно должен быть еще какой-то заголовок wmf-файла или что-то еще?
К>Немудрено. Сказал, что метафайл, а кинул битмап.

К>Лезем в MSDN, читаем про формат RTF.

К>(на всякий случай, выдрал. бери тут: http://www.rsdn.ru/File/4783/rtfspec.zip)

К>Ищи \pict и читай.


Спасибо, за спецификацию такую подробную я еще не встречал.

На сколько я понял нужно вместо \wmetafile писать \wbitmap
и сбрасывать в RTF, вернет
GetBitmapBits



Еще раз всем спасибо. Спасибо еще dmz.
Трудно ничего не делать, но мы не боимся трудностей.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.