我有一个使用Imagick的PHP函数。我试图从URL中拉出一个非方形图像并将其调整到500x500px,它不会拉伸但适合这个区域。另外,我使用的是Laravel框架,此函数位于通过路径呈现的控制器中。
function myFunction()
{
function createGrid()
{
$placeholder = "https://placeholdit.imgix.net/~text?txtsize=33&txt=&w=500&h=500";
$im = new imagick("http://www.masters.com/images/pics/large/h_2015041243595.jpg");
$image = $im->resizeImage(500, 500, 0, 0, true);
// $target = new Imagick($placeholder);
// $target->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
// $target->compositeImage($image, imagick::COMPOSITE_COPY, 0, 0);
header("Content-Type: image/png");
echo $image->getImageBlob();
}
}
我得到它呈现为:
当图像定义为:
时,$ Image如何不是想象的实例$im->resizeImage(500, 500, 0, 0, true);
我做错了什么以及如何解决?
答案 0 :(得分:0)
替代方案是裁剪图像。
想象一下这个功能:http://php.net/manual/en/imagick.cropimage.php
Imagick :: cropImage - 提取图像的一个区域
步骤: