2011-10-10 262 views
0

其實我不知道有任何PHP函數可以用給定參數(x1,y1,x2,y2,寬度,高度)和圖像名稱裁剪和重新調整圖像大小。調整大小和裁剪圖像

我看起來像下面的函數,從現有的參數創建新的圖像與給定的參數。

newimg(x1,y1,x2,y2,width,height,image); 

目前我已經得到了所有以上參數與JavaScript,但現在我想按照上述參數裁剪圖像。

+0

https://gist.github.com/880506 – Phil

回答

3

imagecopyresampled()可以做到這一點:

imagecopyresampled()拷貝一個圖像到另一個圖像的矩形部分,平滑地內插像素值,因此,特別地,減小圖像的大小而仍然保持非常清晰。

換句話說,imagecopyresampled()將採取矩形區域從寬度src_wsrc_image和在位置高度src_hsrc_xsrc_y)並將其放置在的的寬度dst_wdst_image的矩形區域和高度dst_h在位置(dst_x,dst_y)。

如果源和目標座標以及寬度和高度不同,則將執行適當的圖像片段的伸展或收縮。座標指的是左上角。此功能可用於複製同一圖像中的區域(如果dst_imagesrc_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; 
}