我一直在寻找各种尝试找到一个函数来使用GD库使用php来扭曲图像.我已经阅读了建议使用ImageMagick的线程,但遗憾的是我无法访问服务器上的那个库,所以我不得不使用GD.
我正在寻找能指定源图像和目标图像的东西,然后为图像的每个角设置4组X和Y坐标.所以这样的事情是理想的:
bool skewImage(resource $src_im, resource $dst_im, int $x1, int $y1, int $x2, int $y2, int $x3, int $y3, int $x4, int $y4)
如果有人拥有或知道这样或类似的功能会很棒,谢谢!
解决方法:
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;