Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Delphi

Ответ
 
Опции темы
Старый 01.04.2011, 17:13   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Image

Каким образом кодируется image внутри DFM? Явно, что используется некий аналог Base64 (UUE?). Но, может кто-то сталкивался?
 object Image1: TImage
      Left = -144
      Top = -48
      Width = 465
      Height = 353
      Picture.Data = {
        0A544A504547496D6167655F790000FFD8FFE000104A46494600010101004800
        480000FFDB00430006040506050406060506070706080A100A0A09090A140E0F
        0C1017141818171416161A1D251F1A1B231C1616202C20232627292A29191F2D
        302D283025282928FFDB0043010707070A080A130A0A13281A161A2828282828
        2828282828282828282828282828282828282828282828282828282828282828
        28282828282828282828282828FFC000110801B0024003012200021101031101
        FFC4001C00000203010101.....
        D2F8AED56EF24407928564E3CC72EC58AA1CF09C634973EC1FFD4A066745278E
        DC3EA9A39A5ADA3B858E7EA5A0CAEAB07233924FD0AA3AA874E608FF002DF986
        EB06D2E6BC8DA41DD742B154DEE6ECFA2D7D743A7D46A2593A78234DBE981CEB
        25BDAF03EBFBA73952424ACFFFD9}
      Transparent = True
    end
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 02.04.2011, 01:41   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Image

Похоже, начиная с некоторой позиции и до конца идут данные BMP в чистом виде, но вот что перед ними - не понятно.
(Offline)
 
Ответить с цитированием
Старый 02.04.2011, 02:25   #3
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Image

сначало идет хеадер (заголовок файла) в бмп 56 первых байт вроде как !! Ну а потом собсвенно все данные один в один в незжатом вде !!
Вообще уточнять на вики и в гугле !! Есть полное описание формата !!
(Offline)
 
Ответить с цитированием
Старый 02.04.2011, 02:43   #4
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Image

ткни в линк на описание DFM, плиз.

2ViNT,IGR нетрудно заметить ограниченность используемого для кодирования алфавита (причина - простота парсенья: не надо отслеживать эскейп-последовательности). В то время как в БаМПере (24БПП для наглядности) каждый пиксель кодируется тремя символами с алфавитом размером 256.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?

Последний раз редактировалось impersonalis, 02.04.2011 в 15:10.
(Offline)
 
Ответить с цитированием
Старый 02.04.2011, 19:28   #5
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Image

Имхо это тупо хексы побайтно, только битмап.. хидер текстом дан..
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (02.04.2011)
Старый 02.04.2011, 19:34   #6
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Image

Заголовок там вообще немного странный - если парсить просто как хексы - в самом начале есть запись TBitmap (что указывает на то, что по крайней мере в начале алфавит обычный), но потом ни каких осмысленных текстовых данных. Так что, возможно, там присутствует какое-то бинарное представление объекта TBitmap.

Под "данными BMP в чистом виде" я, собственно, и подразумевал запись байтов хексами. Просто я сравнивал текст и HEX-представление исходного файла изображения и находил по крайней мере совпадающие блоки (анализировал только отдельные куски).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (02.04.2011)
Старый 26.01.2012, 23:58   #7
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Image

Ап. Опять чо-ли самому кодить?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 27.01.2012, 01:04   #8
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Image

(Если не напутал)
Группы по 2 символа - HEX-коды байтов (далее такая группа называется "байтом").
Первый байт - всегда 0x07 (не точно).
Следующие 7 байт - текст TBitmap.
Следующие 4 байта - размер данных, совпадает с аналогичной записью в заголовке BMP файла. Байты записаны в обратном порядке.
Дальше до конца - загруженный BMP файл, (заголовок и данные, как на диске).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (27.01.2012)
Старый 27.01.2012, 09:23   #9
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Image

хексы побайтно вродекак, когда то баловался. А зачем тебе это вообще?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (27.01.2012)
Старый 27.01.2012, 11:21   #10
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Image

Ну, первое применение, приходящее в голову - модифицировать картинки своих программ, исходники от которых утеряны.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 27.01.2012, 11:32   #11
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: Image

Сообщение от impersonalis Посмотреть сообщение
Ну, первое применение, приходящее в голову - модифицировать картинки своих программ, исходники от которых утеряны.
так можно просто создать пустой проект открыть эту dfm ку и вытащить картинку из TImage, там можно сохранить на жесткий диск, и редактируй как тебе надо и снова загружай в форму
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
YellowAfterlife (27.01.2012)
Старый 27.01.2012, 19:09   #12
YellowAfterlife
ПроЭктировщик
 
Аватар для YellowAfterlife
 
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений
(для 219 пользователей)
Ответ: Image

Сообщение от ViNT Посмотреть сообщение
Первый байт - всегда 0x07 (не точно).
Следующие 7 байт - текст TBitmap.
Можно предположить что 0x07 = длина строки, с которой начинается hex-блок, и которая указывает на фомат содержимого. Не похоже на то что в конце-концов в дельфи было добавлено "приведение типов" для содержимого других форматов, но все же.

Сообщение от pozitiffcat Посмотреть сообщение
так можно просто создать пустой проект открыть эту dfm ку и вытащить картинку из TImage, там можно сохранить на жесткий диск, и редактируй как тебе надо и снова загружай в форму
Can haz HQ avatar:

No JPEG blocks implemented.
__________________

Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ViNT (27.01.2012)
Старый 27.01.2012, 19:18   #13
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Image

Сообщение от YellowAfterlife Посмотреть сообщение
Можно предположить что 0x07 = длина строки, с которой начинается hex-блок, и которая указывает на фомат содержимого.
Точно, именно так строки в паскале и представляются, как-то я не обратил на это внимаеия.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (31.05.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 15:44.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com