imagecopyresampled()
может сделать только это:
imagecopyresampled () копирует прямоугольную часть одного изображения в другое изображение, плавно интерполируя значения пикселейтак что, в частности, уменьшение размера изображения все еще сохраняет большую ясность.
Другими словами, imagecopyresampled () будет принимать прямоугольную область шириной src_image
src_w
и высотой src_h
в положении (src_x
, src_y
) и поместите его в прямоугольную область dst_image
ширины dst_w
и высоты dst_h
в положении (dst_x
, dst_y
).
Если исходные и конечные координаты, ширина и высота отличаются, будет выполнено соответствующее растяжение или сжатие фрагмента изображения.Координаты относятся к верхнему левому углу.Эта функция может использоваться для копирования областей в одном и том же изображении (если dst_image
совпадает с src_image
), но если области перекрываются, результаты будут непредсказуемыми.
В вашем случае ( не проверено ):
function newimg($x1, $y1, $x2, $y2, $width, $height, $image) {
$newimg = ... // Create new image of $width x $height
imagecopyresampled(
$newimg, // Destination
$image, // Source
0, // Destination, x
0, // Destination, y
$x1, // Source, x
$y1, // Source, y
$width, // Destination, width
$height, // Destination, height
$x2 - $x1, // Source, width
$y2 - $y1 // Source, height
);
return $newimg;
}