23:57
Untitled [301]
Оказывается, GD в PHP отказывается воспринимать некоторые JPEG-файлы. А именно, функции работы с JPEG выдают предупреждения, хотя всякие просмотрщики изображений отображают файл нормально. Виной тому (в обнаруженном мной случае) являются лишние данные (откуда?)
Предупреждение об ошибке со стороны специализированных утилит выглядит примерно так:
Extraneous 12345 padding bytes before section 0xE2
Что можно с этим сделать:
1) Пофиксить файл с помощью jpegtran с параметрами -copy all и -perfect. Минус: у меня файл уменьшился в размере на большее число байт, чем было лишних. Возможно, всё-таки происходит перекодирование?
2) Отключить предупреждения в PHP. Для этого есть опция gd.jpeg_ignore_warning. Минус: getimagesize всё равно возвращает FALSE.
Предупреждение об ошибке со стороны специализированных утилит выглядит примерно так:
Extraneous 12345 padding bytes before section 0xE2
Что можно с этим сделать:
1) Пофиксить файл с помощью jpegtran с параметрами -copy all и -perfect. Минус: у меня файл уменьшился в размере на большее число байт, чем было лишних. Возможно, всё-таки происходит перекодирование?
2) Отключить предупреждения в PHP. Для этого есть опция gd.jpeg_ignore_warning. Минус: getimagesize всё равно возвращает FALSE.
17.05.2014 в 12:54
Еще вариант - кто-то добавил в жпеги код
17.05.2014 в 17:49
18.05.2014 в 13:01
27.05.2014 в 23:32
27.05.2014 в 23:41
27.05.2014 в 23:53
28.05.2014 в 07:46
Сведения такие: это некий фотосет, сделанный некоей камерой, что подтверждается EXIF-данными. Из сотни или около того фоток три обладают данной проблемой, а остальные нет. В одной примерно 6 лишних килобайт, в другой 20, в третьей 50.
Ещё один момент -- фотки точно подвергались обработке редактором. По этому поводу в EXIF -- Adobe Photoshop Lightroom 5.3 (Windows). В некоторых из нормальных. А в тех трёх -- Adobe Photoshop 7.0. Что в остальных -- не проверял. Так что это, возможно, действительно косяк программы.