Просмотр исходного кода

Fixed image orientation if a JFIF APP0 segment is present in a JPEG header.

master
Jacek Naglak 11 лет назад
Родитель
Сommit
5dea695c71
2 измененных файлов: 12 добавлений и 5 удалений
  1. +11
    -5
      exif.c
  2. +1
    -0
      exif.h

+ 11
- 5
exif.c Просмотреть файл

@@ -73,16 +73,22 @@ int exif_orientation(const fileinfo_t *file)
if (fd < 0)
return -1;

if (s_read(fd, file->name, data, 4) < 0)
if (s_read(fd, file->name, data, 2) < 0)
goto abort;
if (btous(data, order) != JPEG_MARKER_SOI)
goto abort;
if (btous(data + 2, order) != JPEG_MARKER_APP1)
if (s_read(fd, file->name, data, 4) < 0)
goto abort;

if (s_read(fd, file->name, data, 2) < 0)
if (btous(data, order) == JPEG_MARKER_APP0){
len = btous(data + 2, order);
if (s_read(fd, file->name, data, len - 2) < 0)
goto abort;
if (s_read(fd, file->name, data, 4) < 0)
goto abort;
}
if (btous(data, order) != JPEG_MARKER_APP1)
goto abort;
len = btous(data, order);
len = btous(data + 2, order);
if (len < 8)
goto abort;



+ 1
- 0
exif.h Просмотреть файл

@@ -23,6 +23,7 @@

enum {
JPEG_MARKER_SOI = 0xFFD8,
JPEG_MARKER_APP0 = 0xFFE0,
JPEG_MARKER_APP1 = 0xFFE1
};



||||||
x
 
000:0
Загрузка…
Отмена
Сохранить