使用Imagick在白色背景上放置图像

时间:2015-08-21 09:07:14

标签: php gd imagick

这是我打算做的GD版本。它将图像放在白色背景的中心。

$background = imagecreatetruecolor(709,709);
$whiteBackground = imagecolorallocate($background, 255, 255, 255);
imagefill($background,0,0,$whiteBackground);
imagecopyresampled(
    $background, $new_img,(709-$imageWidth)/2,(709-$imageHeight)/2,
    0, 0, $imageWidth, $imageHeight, $width, $height
);
ImageJpeg ($background,"$path/$newName.$file_ext", 85);`

但是我想用Imagick进行它。

1 个答案:

答案 0 :(得分:0)

欢迎来到SO,

你正在寻找的是扁平的;

$im = new Imagick($old_img);
$im->setImageBackgroundColor('white');
$im->setImageAlphaChannel(11);
$im->mergeImageLayers(imagick::LAYERMETHOD_FLATTEN);
$im->setFormat("png");

$new = fopen($path . DIRECTORY_SEPARATOR . $newName . DIRECTORY_SEPARATOR . $file_ext, "w");
$im->writeImageFile($new);
$im->clear();
$im->destroy();

并不是说这正是您所寻找的,但它应该会帮助您顺利完成。 $im->setImageAlphaChannel(11); 如果您的Imagic版本是$im->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);,则可以替换为CATALOG TCPIP NODE 3.2.0b2或更高