Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2012, 17:02   #1
Павел-ещераз-Павел
 
Регистрация: 28.03.2012
Сообщений: 5
Радость Загрузка PCXfile

скажите плз, может кто знает.....нашёл код, где идет загрузка pcx файла

unsigned char *LoadPCXFile(char *filename, PCXHEADER *pcxHeader)
{
int idx = 0;
int c;
int i;
int numRepeat;
FILE *filePtr;
int width;
int height;
unsigned char *pixelData;
unsigned char *paletteData;

fopen_s(&filePtr, filename, "rb");

if (filePtr == NULL)
return NULL;

// retrieve first character; should be equal to 10
c = getc(filePtr);
if (c != 10)
{
fclose(filePtr);
return NULL;
}

// retrieve next character; should be equal to 5
c = getc(filePtr);
if (c != 5)
{
fclose(filePtr);
return NULL;
}

rewind(filePtr);

// read 4 characters of data to skip
fgetc(filePtr);
fgetc(filePtr);
fgetc(filePtr);
fgetc(filePtr);
.....
пытался понять, почему мы извлекаем сначало 10 characters, а затем 5 и 4. В структуре самого формата я насчитал всего 18 свойств. или я не туда полез?????? подскажите пожалуйста, если знаете о чем речь идет
Павел-ещераз-Павел вне форума Ответить с цитированием
Старый 31.03.2012, 19:33   #2
zvoronz
Пользователь
 
Регистрация: 03.01.2011
Сообщений: 49
По умолчанию

В этом куске кода вижу только то что сначало проверяется по сигнатуре PCX файл ты передал или нет.
0А05 сигнатура РСХ файла. То есть если сигнатура не совпадает то функция возвратит NULL, а не указатель на пиксельные данные.
Далее дескриптор файла снова устанавливается на его начало и пропускаются первые 4-ри байта файла.
То что ты спрашиваешь вообще непонятно о чём ты.

То что ты полез смотреть структуру формата это правильно, но вижу ты ещё не понимаешь код.

Последний раз редактировалось zvoronz; 31.03.2012 в 19:35.
zvoronz вне форума Ответить с цитированием
Старый 31.03.2012, 20:44   #3
Павел-ещераз-Павел
 
Регистрация: 28.03.2012
Сообщений: 5
По умолчанию

Да, я тут совсем напутался.... а вот откуда 0А05 берется? почему это и есть сигнатура.....пытался переводить из 16-й в 10-юю получается 2565, это число мне ни о чем не говорит ((((
Павел-ещераз-Павел вне форума Ответить с цитированием
Старый 31.03.2012, 22:21   #4
Павел-ещераз-Павел
 
Регистрация: 28.03.2012
Сообщений: 5
По умолчанию

совсем забыл, Спасибо )))))
Павел-ещераз-Павел вне форума Ответить с цитированием
Старый 31.03.2012, 22:29   #5
zvoronz
Пользователь
 
Регистрация: 03.01.2011
Сообщений: 49
По умолчанию

Не понял о чём ты забыл?
Зачем ты 0А05 в 10-ную перевёл вместе если у тебя сравниваются они отдельно
zvoronz вне форума Ответить с цитированием
Старый 01.04.2012, 11:32   #6
Павел-ещераз-Павел
 
Регистрация: 28.03.2012
Сообщений: 5
Радость

Все, я понял.....спасибо огромное ))))) просто я прогуглил и нашёл, что сигнатура BMP = 4D42, а с PCX совсем ничего. Спасибо ))))
Павел-ещераз-Павел вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка с CD AndreyFreeman Фриланс 2 24.10.2010 13:59
Загрузка ОС subbota Операционные системы общие вопросы 1 24.09.2009 14:32
Загрузка Witaliy PHP 3 12.07.2008 18:06
Загрузка ЦП HelloZAPOR Win Api 7 05.11.2007 15:43
Загрузка UnD)eaD)Snake Общие вопросы Delphi 10 19.08.2007 11:24