2011-03-20 33 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