【发布时间】:2015-12-09 21:54:03
【问题描述】:
我有一个使用 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);
我做错了什么,我该如何解决?
【问题讨论】:
-
考虑使用
intervention/image(它有很好的 Laravel 集成)和cropfunction。 -
我会看一下,但实际上我更希望它适合空白区域。
-
为此,image.intervention.io/api/resize、image.intervention.io/api/canvas,并使用image.intervention.io/api/insert 将调整大小的图像添加到白色画布。
标签: php laravel laravel-5 imagick