Этот урок по изменению размера изображений. Вместо уменьшения размеров, скрипт вырезает часть изображения. Этот скрипт можно использовать для различных сайтов для создания разных размеров в необходимых для этого случаях.
Вначале задаем три переменные:
$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);
Вот и все. Как я уже сказал в начале, этот сценарий может быть использован во многих ситуациях и в разных размерах.