【发布时间】:2017-03-30 22:13:32
【问题描述】:
我使用此命令批量修改站点的图像。它们需要有这个尺寸才能适合主题。
现在我也想在 Facebook 广告中使用这些图片,但必须调整它们的大小。我使用的命令(效果很好)是:
for i in `ls -1 *.jpg`; do convert $i -fuzz 10% -trim +repage -resize 980x1200 -background white -gravity center -extent 980x1200 $i; done
现在我需要制作一个 PHP 脚本来做同样的事情,但还要返回图像作为响应。
我想出了以下内容:
<?php
/* Create the object and read the image in */
$im = new Imagick("image.jpg");
/* Trim the image with 10% fuzz */
$im->trimImage(10);
/* Repage */
$im->setImagePage(0, 0, 0, 0);
/* Resize */
$im->resizeImage(1200,628,Imagick::FILTER_LANCZOS,0);
/* Add Borders*/
$im->setImageBackgroundColor('White');
$im->setGravity('Centre');
$im->setImageExtent(1200,628);
/* Output the image */
header("Content-Type: image/" . $im->getImageFormat());
echo $im;
?>
不幸的是,它似乎不起作用。它所做的只是返回一个黑色矩形(看起来像脚本中使用的正确尺寸)。
【问题讨论】:
-
print_r(Imagick::getVersion());告诉你什么? -
你不能简单地
echo $im。你应该使用echo $im->getimageblob();。 -
我的回声和你的似乎都对我有用。不幸的是,它只是返回一个正确尺寸的黑色矩形。所以我认为操作出了点问题
标签: php imagemagick imagick