Проблема с JPEG'ом

Igor2001

Новичок
Проблема с JPEG'ом

На сервере установлен PHP с поддержкой GD. Все работает нормально. Но есть небольшой ньюанс: при закачке обычных jpeg'ов все работает как надо, но иногда попадаются некоторые jpeg'и (фотографии, сделанные некоторыми цифровыми фотоаппаратами) с которыми функция imagecreatefromjpeg() выдаёт ошибку:

Warning: imagecreatefromjpeg(): 'C:\WINDOWS\TEMP\php16.tmp' is not a valid JPEG file in d:\localhost\public\include\function_common.php on line 109

Если открыть "кривой" jpeg, к примеру, программой ASDSee и потом сохранить его под другим именем, он уменьшается немного в размерах и тогда все нормально.

Кто сталкивался с таким, расскажите что это за jpeg'и такие и как это можно пофиксить?
заранее спасибо!

P.S.: установлено
Apache 1.3.33 + PHP 4.4.0 + GD (GD Version bundled (2.0.28 compatible) )
 

SiMM

Новичок
Выложил бы где небольшой jpeg, на котором функция обламывается - тебе бы может чего и сказали. А так - телепаты в отпуске.
 

SiMM

Новичок
Corrupt JPEG data: 26 extraneous bytes before marker 0xd9
Проверял на 4.4.2 и 5.1.2 (GD 2.0.28 compatible)
В любом случае - вам, скорее, сюда, поскольку к PHP эта проблема отношения не имеет.
А по поводу
> Кто сталкивался с таким
http://bugs.php.net/bug.php?id=32633
 

Igor2001

Новичок
SiMM
сэнкс...

to All: Может есть какая-то штатная функция на проверку битых изображений, кроме как использовать:
if (@imagecreatefromjpeg('file.jpg'){
echo "Плохой JPEG";
}
???
 

tony2001

TeaM PHPClub
>В любом случае - вам, скорее, сюда, поскольку к PHP эта проблема отношения не имеет.
Я не думаю, что Boutell или Pierre Joe (который уже мэйнтэйнит GD) имеет какое-либо отношение к libjpeg, которая отвечает за это сообщение об ошибке.
Да и libjpeg, по сути, к этому отношение имеет слабое - картинка битая и она об этом честно сообщает.
Поэтому обращаться скорее следует к производителям кривых прошивок для фотоаппаратов. Или в небесную канцелярию.

-~{}~ 21.05.06 01:22:

>http://script.art-storm.com/temp/bad.jpg - лохой jpeg
и он таки да плохой - Опера показывает его не до конца.
 
Сверху