PHP скрипт генерации изображений

Этот урок по изменению размера изображений. Вместо уменьшения размеров, скрипт вырезает часть изображения. Этот скрипт можно использовать для различных сайтов для создания разных размеров в необходимых для этого случаях.

Вначале задаем три переменные:


 $image = $HTTP_GET_VARS['image'];
 $newWidth = $HTTP_GET_VARS['width'];
 $newHeight = $HTTP_GET_VARS['height'];
 

Далее мы должны узнать полную ширину и высоту изображения, которое используем и добавляем его в переменные $width и $height:


 $size = getimagesize($image);
 $width = $size[0];
 $height = $size[1];
 

Следующим шагом мы берем текущую ширину изображения и уменьшаем ее до заданной. Ширина не будет обрезаться слишком близко к краю.

$width = $width-$newWidth;

То же самое сделали по высоте

$height = $height-$newHeight;

Теперь мы создаем Х и У координаты. Есть несколько способов для достижения цели, но я решил просто уменьшить на половину ширину и высоту.


 $x = $width/2;
 $y = $height/2;
 

Следующая часть кода делает копию изображения, сохраняя ее в переменную $src.

$src = imagecreatefromjpeg($image);

Затем создаеться пустой образ с нужной шириной и высотой.

$tmb = imagecreatetruecolor($newWidth,$newHeight);

Теперь мы можем создать наш фактический эскиз. Эта строка кода, копия старого образа, которая запускается с генерируемых Х и У к координат. Это позволяет кадрировать изображение в указанном месте.

imagecopy($tmb, $src, 0, 0, $x, $y, $newWidth, $newHeight);

Теперь мы можем увидеть изображение:


 header('content-type: image/jpeg');
 imagejpeg($tmb, null, 100);
 

И наконец, уничтожить ненужное изображений из памяти


 imagedestroy($src);
 imagedestroy($tmb);
 imagedestroy($thumb);
 

Вот и все. Как я уже сказал в начале, этот сценарий может быть использован во многих ситуациях и в разных размерах.

Понравился урок? Добавьте его к себе в закладки.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *