Моя задача - реализовать кодировщик / декодер JPEG в Qt.Я должен обрабатывать маркеры JPEG (например, 0xFFC4, который является началом таблицы Хаффмана) и данные между маркерами.Я открываю свой файл jpeg, используя класс QFile.Результат отладки показан на рисунке ниже.Как вы можете видеть, значение в маркер [0] равно -1/255, а маркер [1] равен -40/216, а оператор if никогда не верен, я не знаю почему?Код следующий:
try{
char markers[2];
char TableData[64];
QFile *file= new QFile( "NovaSlika.jpeg");
if(file->open(QFile::ReadOnly )){
while(file->read((char*)markers,sizeof(markers))){
if(markers[0]=='255' && markers[1]=='216'){//FF i C4
char TableLength[2];
char tableMetaData;
file->read((char*)TableLength,sizeof(TableLength));//Read table length
file->read((char*)tableMetaData,sizeof(tableMetaData));//Read metadata
file->read((char*)TableData,sizeof(TableData));//Read data
break;
}
}
}
Изображение процесса отладки: здесь