【问题标题】:Fill an Image with white color to have square dimensions用白色填充图像以获得方形尺寸
【发布时间】:2013-09-17 21:46:34
【问题描述】:

假设我有一个 300 x 500(宽 x 高)像素的图像。

现在我需要生成一个正方形尺寸的图像。

我想用白色填充缺失的空间,而不是裁剪图像。

在此示例中,with 应填充 200 像素(每边 100 像素,因此图像位于中间),因此图像为 500 x 500 像素。

如果它是相反的 (500 x 300),应该会发生同样的情况,但高度不同。

我几乎没有使用 imagemagick 的经验,我该怎么做呢?

【问题讨论】:

    标签: php image-processing imagemagick


    【解决方案1】:

    使用Imagick::borderImage()

    以左右各填充 100px 为例:

    // let's assume that $im is your image object
    $color=new ImagickPixel();
    $color->setColor("white");
    $im->borderImage($color,100,0);
    

    【讨论】:

    • 很好的解决方案,但并不完美。当我有一张尺寸为 650x365 的图片时,我无法匹配 650,因为borderImage 在每边(顶部和底部或左右)至少添加了 2 个像素。如果我尝试匹配我能得到的最接近的是 650x649 或 650x651,有什么办法可以解决这个问题?
    • nvm,我用crop修复了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 2020-04-19
    • 1970-01-01
    • 2014-03-07
    • 2017-11-11
    • 2010-09-11
    • 1970-01-01
    相关资源
    最近更新 更多