其實我不知道有任何PHP函數可以用給定參數(x1,y1,x2,y2,寬度,高度)和圖像名稱裁剪和重新調整圖像大小。調整大小和裁剪圖像
我看起來像下面的函數,從現有的參數創建新的圖像與給定的參數。
newimg(x1,y1,x2,y2,width,height,image);
目前我已經得到了所有以上參數與JavaScript,但現在我想按照上述參數裁剪圖像。
其實我不知道有任何PHP函數可以用給定參數(x1,y1,x2,y2,寬度,高度)和圖像名稱裁剪和重新調整圖像大小。調整大小和裁剪圖像
我看起來像下面的函數,從現有的參數創建新的圖像與給定的參數。
newimg(x1,y1,x2,y2,width,height,image);
目前我已經得到了所有以上參數與JavaScript,但現在我想按照上述參數裁剪圖像。
imagecopyresampled()
可以做到這一點:
imagecopyresampled()拷貝一個圖像到另一個圖像的矩形部分,平滑地內插像素值,因此,特別地,減小圖像的大小而仍然保持非常清晰。
換句話說,imagecopyresampled()將採取矩形區域從寬度
src_w
src_image
和在位置高度src_h
(src_x
,src_y
)並將其放置在的的寬度dst_w
dst_image
的矩形區域和高度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;
}
PHP的主圖像庫GD和ImageMagick。兩者都可以調整大小和裁剪圖像。
https://gist.github.com/880506 – Phil