| 
| 
 | Вопрос # 6 090/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Столкнулся с такой проблемой: нашел распаковщик файлов для серии игр, который отлично работает для более новых частей игры, но для отображения фалов из ранних частей он не приспособлен. Я наткнулся на форум где пользователь нашел как сконвертировать в изображения файлы старых игр, цитата
 
 the pic file format is like some raw bmp file.
 It looks likes this :
 
 file head (18bytes)
 24bit rgb raw data
 Last line --->First line
 
 and i have converted a pic to bmp by add a 54bytes bmp head with hand
 
 Может кто-то сталкивался с нечто подобным и может подсказать что именно автор мел в виду под всем этим и как это можно осуществить? Заранее спасибо!
 
|  |   Вопрос задал: A000Y (статус: Посетитель)Вопрос отправлен: 20 апреля 2012, 10:44
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 14; последнее сообщение — 22 апреля 2012, 20:41; участников в обсуждении: 4. 
|   | DNK (статус: Студент), 20 апреля 2012, 11:32 [#1]:Ты нашлел иструмент, который не приспособлен для более старых форматов искомого инструмента. И наткнулся на форуме на объянение, что чувак вместо 18-байтного заголовка использовал 54-байтный. Я с таким не сталкивался. Пожалуйста! "Digital Networked Knight" |  
|   | min@y™ (статус: Доктор наук), 20 апреля 2012, 13:05 [#2]: Цитата (A000Y): что именно автор мел в виду Ну, дык, обратись непосредственно к автору, ёмаё.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | A000Y (статус: Посетитель), 20 апреля 2012, 13:15 [#3]:@ DNK, программа извлекает изображения из всех игр, просто в новых играх достаточно к извлеченному файлу EXAMPLE дописать .PNG и он будет отображаться как изображение, а в старых играх этого недостаточно и нужно с бубном танцевать меняя какие-то заголовки... 
 @ min@y™, к сожалению автор не посещал тот сайт уже несколько месяцев.
 |  
|   | min@y™ (статус: Доктор наук), 20 апреля 2012, 13:23 [#4]: Цитата (A000Y): к сожалению автор не посещал тот сайт уже несколько месяцев.  А выковырять из личных данных автора ICQ/e-mail/skype не судьба? Или он о себе ваще никаких координат там не оставил?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | A000Y (статус: Посетитель), 20 апреля 2012, 13:26 [#5]:min@y™, только ЛС на сайте, на который он не заходит) |  
|   | min@y™ (статус: Доктор наук), 20 апреля 2012, 13:34 [#6]:Ну, тогда надо хотя бы посмотреть исходный файл и результат. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 20 апреля 2012, 13:59 [#8]:А ты ничего подозрительного не заметил? Например, что исходный файл весит 90 кб, а результат - 8.8 кб и является jpeg-картинкой (сжатие с потерей качества), несмотря на то, что 
 Цитата (A000Y): the pic file format is like some raw bmp file. It looks likes this :
 
 file head (18bytes)
 24bit rgb raw data
 Last line --->First line
 
 and i have converted a pic to bmp by add a 54bytes bmp head with hand
 На выходе тоже BMP должон быть!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 20 апреля 2012, 14:12 [#9]:Что я ещё могу сказать. Действительно, заголовок BMP занимает 54 байта. 
  Вот его описалово:
 
  Элемент палитры представляет собой четырёхбайтовую запись (структуру). В этой структуре хранятся составляющие R-красного, G-зеленого и B-синего цветов. Один байт зарезервирован. Палитра может и не использоваться, например в True Color.
 Структура элемента палитры:
 
 
 typedef struct tagRGBQUAD
{
        char   rgbBlue;
        char   rgbGreen;
        char   rgbRed;
        char   rgbReserved;
} RGBQUAD;В поле тип сжатия должно стоять 0 - сжатие не используется, 1 - RLE8 сжатие, 2 - RLE4 сжатие. RLE8 - используется для сжатия 256-ти цветного изображения, RLE4 - используется для сжатия 16-ти цветного изображения.
 В поле по смещению 28 (Бит/пиксел) должно стоять 1 - черно-белое изображение, 4 - 16-ти цветное, 8 - 256-ти цветное, 24 - True Color
 
 
 typedef unsigned long DWORD;    // Двойное слово - 32 бита (разряда)
typedef unsigned int WORD;         //  Слово - 16 бит (разрядов)
typedef signed long LONG;
typedef unsigned int UINT;
 
 
// Заголовок файла
typedef struct tagBITMAPFILEHEADER
{
        UINT bfType;                // 'BM' = 4D42h
        DWORD bfSize;
        UINT bfReserved1;
        UINT bfReserved2;
        DWORD bfOffBits;        // Смещение к растру
} BITMAPFILEHEADER;    
 
// Заголовок Bitmap
typedef struct tagBITMAPINFOHEADER
{
        DWORD biSize;
        LONG biWidth;
        LONG biHeight;
        WORD biPlanes;
        WORD biBitCount;
        DWORD biCompression;
        DWORD biSizeImage;
        LONG biXPelsPerMeter;
        LONG biYPelsPerMeter;
        DWORD biClrUsed;
        DWORD biClrImportant;
} BITMAPINFOHEADER;ВАЖНО!Изображение сохраняется построчно СНИЗУ-ВВЕРХ.
 
 Цитата (A000Y): Last line --->First line Для хранения каждой строки выделяется кратное 4 количество байт. В незначащих байтах хранится мусор.
 Старшему биту или тетраде соответствует самый левый пиксел. При хранении изображения True Color каждому пикселу соответствуют три последовательные байта, хранящие составляющие цвета B, G, R; (не R, G, B).
 
 Дальше давай сам, у меня тут работы вагон.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | A000Y (статус: Посетитель), 20 апреля 2012, 14:15 [#10]:min@y™, просто может автор эту картинку через какой-то radikal.ru заливал, который "оптимизирует форматы" до jpeg, ухудшая качество и уменьшая размер. |  
|   | A000Y (статус: Посетитель), 20 апреля 2012, 14:16 [#11]:min@y™, большое спасибо, попробую разобраться) |  
|   | min@y™ (статус: Доктор наук), 20 апреля 2012, 14:32 [#12]: Цитата (A000Y): просто может автор эту картинку через какой-то radikal.ru заливал, который "оптимизирует форматы" до jpeg, ухудшая качество и уменьшая размер.  А я этого и не отрицал.
 
 Цитата (A000Y): большое спасибо, попробую разобраться)  Спасибо - это много, пива достаточно.
   Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | bugmenot (статус: 3-ий класс), 22 апреля 2012, 11:31 [#13]: Цитата (min@y™): палитры Цитата (min@y™): Палитра Цитата (min@y™): палитры Какой вообще может быть разговор о декодировании изображений без поллитры?
 виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  
|   | min@y™ (статус: Доктор наук), 22 апреля 2012, 20:41 [#14]: Цитата (bugmenot): Какой вообще может быть разговор о декодировании изображений без поллитры?  Да, дружище! Без поллитры тут не обойтись!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |