Главная > Заметки, Статьи > Загрузка больших фоток

Загрузка больших фоток

Есть такая проблема, что ни GD ни функция getimagesize не работают с фотками больше 1600×1200 в разрешении.

недавно нашел способ, возможно не всем поможет, но все же.

Задача такая была, не ресайзились картинки с помощью GD при заливки их на сайт, функция getimagesize ничего не возвращала, хотя файл передавался полностью и правильно.

Не долго искав, воспользовался методами модуля PHP imagick:

$image=new Imagick($_FILES['Filedata']['tmp_name']);
$w=$image->getImageWidth();
$h=$image->getImageHeight();

этот кусочек кода, возвращал нам размеры картинки, далее, зная что GD не сможет изменить размеры картинки свыше 1600 на 1200, делается проверка и метод подготовки для работы с GD:

if ($w>1600 || $h>1200)
	{
	if ($w>$h)
		system("convert ".$_FILES['Filedata']['tmp_name']." -resize 1600x -quality 100 ".$_FILES['Filedata']['tmp_name']);
	else

		system("convert ".$_FILES['Filedata']['tmp_name']." -resize x1200 -quality 100 ".$_FILES['Filedata']['tmp_name']);
	}

тут ресайзится картинка программой convert из пакета ImageMagick

после чего наша картинка становится пригодной для работы в GD

PS: данный метод только для тех, кому нужно работать с картинками среднего разрешения.
Для больших разрешений — используйте ImageMagick только.

Заметки, Статьи , , ,

  1. Комментариев пока нет.
  1. Трекбеков пока нет.