PHP |
if(preg_match('/[.](jpg)$/', $f_name))//Определяем формат изображения $im = imagecreatefromjpeg($path_tmp . $f_name); else if (preg_match('/[.](gif)$/', $filename)) $im = imagecreatefromgif($path_tmp . $f_name); else if (preg_match('/[.](png)$/', $filename)) $im = imagecreatefrompng($path_tmp . $f_name); $ox = imagesx($im); //ширина и высота загруженого изображения $oy = imagesy($im); $nx = $final_width; //ширина и высота сжатого изображения $ny = floor($oy * ($final_width/ $ox)); $nm = imagecreatetruecolor($nx, $ny); //создание формы для сжатого изображения imagecopyresized($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);//вставка в форму if(preg_match('/[.](jpg)$/', $f_name))//Вставляем отредактированое изображение, в зависимости от формата { $im = imagecreatefromjpeg($path_tmp . $f_name); imagejpeg($nm, $path_img . $name); unlink($path_tmp . $f_name); } else if (preg_match('/[.](gif)$/', $f_name)) { $im = imagecreatefromgif($path_tmp . $f_name); imagegif($nm, $path_img . $name); unlink($path_tmp . $f_name); } else if (preg_match('/[.](png)$/', $f_name)) { $im = imagecreatefrompng($path_tmp . $f_name); imagepng($nm, $path_img . $name); unlink($path_tmp . $f_name); } |
вот сами ошибки:
Warning: imagesx(): supplied argument is not a valid Image resource in Z:\home\test1.ru\www\work_registr.
php on line 136
Warning: imagesy(): supplied argument is not a valid Image resource in Z:\home\test1.ru\www\work_registr.
php on line 137
Warning: Division by zero in Z:\home\test1.ru\www\work_registr.
php on line 139
Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in Z:\home\test1.ru\www\work_registr.
php on line 140
Warning: imagecopyresized(): supplied argument is not a valid Image resource in Z:\home\test1.ru\www\work_registr.
php on line 141
Подскажите в чём проблема...
Спустя 28 минут, 46 секунд (24.08.2009 - 17:33) glock18 написал(а):
Спустя 3 минуты, 18 секунд (24.08.2009 - 17:37) Anton63 написал(а):
Цитата (glock18 @ 24.08.2009 - 14:33) |
gd2 поключил? |
не, не в этом беда была...
нашол ошибку...
регистр в расширении был не продуман...
заменил на preg_match('/[.](jpg) || (JPG)$/', $f_name)
Спустя 30 минут, 47 секунд (24.08.2009 - 18:07) glock18 написал(а):
Цитата |
заменил на preg_match('/[.](jpg) || (JPG)$/', $f_name) |
ничего такой велосипед
попробуй вот этот что ли:
PHP |
preg_match('/\\.jpg$/i', $f_name) |
Спустя 28 минут, 3 секунды (24.08.2009 - 18:35) Anton63 написал(а):
сделал так:
PHP |
preg_match('/[.](jpg)$/i', $f_name) |
Всё отлично работает... так как и нужно...
Но!
Но у меня проблема с gif анимацией... если gif сжать выше описаным методом, то это уже не анимация, а просто статичное изображение с расширением gif.
Пришла мысль проверять картинки, если картинка - гиф, то проверяем какая у неё ширина(если больше 0 и меньше или равно 90 пикселей) то просто капируем эту картинку в нужную папку. Если же ширина больше 90 то выводим сообщение, что этот файл загружать нельзя.
Но помоему это очень каряво и не красиво... полюбому должен быть способ получше.
Подскажите, пожалуйста, кто сталкивался с этим, как мне дополнить этот скрипт...
Спустя 2 часа, 32 минуты, 13 секунд (24.08.2009 - 21:08) Nikitian написал(а):
Копать надо в сторону
imagick - там есть возможность работать с пакетными графическими форматами типа gif покадрово. Gd в некоторых версиях вообще не умеет работать с gif из-за лицензионных разногласий.
Спустя 14 минут, 32 секунды (24.08.2009 - 21:22) Anton63 написал(а):
понял, значит буду делать "очень каряво и не красиво".