【问题标题】:Making non square image render as square image without stretching使非方形图像呈现为方形图像而不拉伸
【发布时间】: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);

我做错了什么,我该如何解决?

【问题讨论】:

标签: php laravel laravel-5 imagick


【解决方案1】:

另一种方法是裁剪图像。

对于 Imagick 这个函数:http://php.net/manual/en/imagick.cropimage.php

Imagick::cropImage — 提取图像的一个区域

步骤:

  • 调整大小以使宽度和高度最小为 500 像素
  • 裁剪大小为 500 像素

【讨论】:

  • 我喜欢它可以显示整个图像但适合白色背景。
猜你喜欢
  • 2020-07-28
  • 1970-01-01
  • 2016-03-27
  • 2016-02-09
  • 1970-01-01
  • 2020-12-01
  • 2019-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多