|
Вопрос # 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|