2011-03-20 65 views
4

我一直在尋找無處不在,試圖找到一個函數來使用GD庫來歪曲圖像。我已經閱讀了ImageMagick的建議,但不幸的是,我無法訪問服務器上的那個庫,所以我不得不使用GD。 我正在尋找一些東西,我可以指定源圖像和目的地圖像,然後4組X和Y座標爲圖像的每個角落。因此,像這樣將是理想的:試圖使用PHP的GD庫歪曲圖像

bool skewImage(resource $src_im, resource $dst_im, int $x1, int $y1, int $x2, int $y2, int $x3, int $y3, int $x4, int $y4) 

如果任何人有或這樣或類似的功能,這將是真棒,感謝知道!

+0

的[我怎麼會扭曲與GD庫的圖像?](完全重複http://stackoverflow.com/questions/1650358/how-would-i-skew-an-image-with-gd-圖書館)。它也恰好是Google對'gd skew'的第一個結果。 – Charles 2011-03-20 20:11:16

+2

我讀過這個帖子,提供的答案並不完全符合我的要求。該功能只會歪曲一方或另一方,類似但不一樣。 – XeroBytez 2011-03-21 11:47:47

回答

1

PHP手冊是一個了不起的地方。 This comment幾乎涵蓋了很多場景。使用「透視」部分。下面的示例稍微修改爲使用圖像的寬度和高度。

$image = new imagick("grid.jpg"); 
$points = array( 
       0,0, 80,120, # top left 
       $image->width,0, 300,10, # top right 
       0,$image->height, 5,400, # bottom left 
       $image->width,$image->height, 380,390 # bottum right 
      ); 

$image->setimagebackgroundcolor("#fad888"); 
$image->setImageVirtualPixelMethod(imagick::VIRTUALPIXELMETHOD_BACKGROUND); 
$image->distortImage(Imagick::DISTORTION_PERSPECTIVE, $points, TRUE); 

header("Content-Type: image/jpeg"); 
echo $image; 
+1

這個答案使用了imagick類,它不是GD庫 – Eruant 2012-02-09 13:10:27