在PHP ImageMagick扩展中的图像周围添加白框

时间:2019-01-18 09:40:22

标签: php image-processing imagemagick

多年来,我一直在使用exec在PHP上完成ImageMagick的工作。但是,我现在移到了PHP ImageMagic扩展。但是,我无法在其中复制命令。

我想拍摄图像并调整其大小,并在其周围添加额外的空白,以使其适合这些尺寸。

我原来的imagemagic exec代码是:

sys.path.append('/path/to/project_one/conf')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')

这很完美,但是我现在想在ImageMagick PHP扩展中复制它。我尝试了以下操作,但不起作用。

exec("convert -define jpeg:size=100x100 test.jpg -thumbnail '480x360>' -background white -gravity center -extent  480x360  output.jpg");

我希望输出的图像适合480x360的框,并在其周围添加空白。图像将是100%可见的,周围区域有空白。因此,如果我上传了一张100x300的图片,那么它将是白框中的信箱。

1 个答案:

答案 0 :(得分:2)

使用API​​时,extentImage要求您计算页面(x,y)偏移量。

Imagick::extentImage ( int $width , int $height , int $x , int $y ) : bool

此处设置重力无效,并且应该发出PHP警告(检查日志)。

尝试以下操作...

$im = new Imagick('rose:');
$im->setImageBackgroundColor('GREEN');
$offsetX = 240 - $im->getImageWidth() / 2;
$offsetY = 180 - $im->getImageHeight() / 2;
$im->extentImage( 480, 360, -$offsetX, -$offsetY);
$im->writeImage('output.jpg');

output.jpg