invalid image JPEG file

horal

Новичок
invalid image JPEG file

Проблема с обработкой фотографии на серваке.

1) берется фотография и закачивается на сервер

2) чтобы проверить, что это на самом деле фото копируем указанный файл во время закачки в другое место:
cp file_tmp ./upload/photo.jpg

3) через браузер - ./upload/photo.jpg - открывается

4) Php при обработке пишет:

Код:
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/tmp/phprvJJYI' is not a valid JPEG file in /h/fsbo2ucom/htdocs/core/Socnet/Thumbnail.php on line 51

Warning: imagesx(): supplied argument is not a valid Image resource in /h/fsbo2ucom/htdocs/core/Socnet/Thumbnail.php on line 64

Warning: imagesy(): supplied argument is not a valid Image resource in /h/fsbo2ucom/htdocs/core/Socnet/Thumbnail.php on line 66

Warning: Division by zero in /h/fsbo2ucom/htdocs/core/Socnet/Thumbnail.php on line 112
5) Проблема ТОЛЬКО с этой фотографией (хотя иногда еще попадаются)

6) любой viewer Это фото открывает

7) Если сделать на Localhost resize данного фото и закачать - то фотография закачивается без проблем

вот тут у товарища аналогичная проблема: http://bugs.php.net/bug.php?id=29878

он проблемные фото меняет с помощью ImageMagic to png and then back to jpeg and photos uploaded - OK

собственно данный код тоже используется:
Код:
error_reporting(E_ALL);
// 0 is the current behavior
ini_set('gd.jpeg_ignore_warning', 1);
$im = imagecreatefromjpeg($file);
там же написано, что данный баг будет закрыт в php 5.1.3 - у нас PHP Version 5.2.3-1+b1

в чем тогда может быть проблема и как ее решить?

спасибо.

в поиске ответа на данный вопрос нет.

PS: config GD

Код:
GD Support 	enabled
GD Version 	2.0 or higher
FreeType Support 	enabled
FreeType Linkage 	with freetype
FreeType Version 	2.2.1
T1Lib Support 	enabled
GIF Read Support 	enabled
GIF Create Support 	enabled
JPG Support 	enabled
PNG Support 	enabled
WBMP Support 	enabled
 

tony2001

TeaM PHPClub
>5) Проблема ТОЛЬКО с этой фотографией (хотя иногда еще попадаются)

И эта фотография с Olympus или Nikon. Угадал?
Эти два производителя славятся несоблюдением стандарта JPEG, чем вынуждают делать специальные решения только для их кривых фоток.

Выложи эту фотку в сеть и оставь УРЛ здесь, я посмотрю что можно сделать.
 

Nelius

кипарис во дворе
Подтверждаю слова tony2001, фотки с зеркалки Olympus при аплоаде вызывали те же проблемы.
 

horal

Новичок
вобщем, выкрутился вот так:

Код:
    $cmd="convert -resize ${w}x$h $file $src_path";
    passthru($cmd);
то есть дополнительная конвертация на сервере через convert (ImageMagic)
 

kruglov

Новичок
tony2001
Зато CMYK-жпеги пхп умеет открывать. А браузеры - нет.
 

tony2001

TeaM PHPClub
Код:
php -r 'var_dump(imagecreatefromjpeg("/tmp/1.jpg"));'
resource(5) of type (gd)
всё работает.
что я делаю не так?
 

tony2001

TeaM PHPClub
Ааа.. да, это я пропустил, спасибо.
Не-bundled GD не рекомендуется - Boutell очень сильно тормозил с патчами и фиксы значительно быстрее попадали в bundled GD, нежели в upstream.
Только сейчас GD начинает догонять PHP в этом плане.
 

dimagolov

Новичок
tony2001, вот тут ссылка на картинку, которая по крайней мере валит GD Version bundled (2.0.34 compatible), PHP Version 5.2.5 win32 с ошибкой "gd-jpeg, libjpeg: recoverable error: Corrupt JPEG data: 2329 extraneous bytes before marker 0xed"
файл сделан Canon-ом
 
Сверху