使用 imagick 将图像放在白色背景上

Posted

技术标签:

【中文标题】使用 imagick 将图像放在白色背景上【英文标题】:Place Image On White Background Using Imagick 【发布时间】:2015-08-21 09:07:14 【问题描述】:

这是我打算做的 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】:

欢迎来到 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 版本是 3.2.0b2或更高版本

【讨论】:

@user5156411 如果它对您有用,请接受答案,或者如果它对您有帮助,请至少投赞成票。帮助社区找到更好的问题/答案 对不起,我赞成答案,我认为它会打勾。我从不知道您必须单击对勾图标本身才能将其标记为已接受的答案。我是这里的新手,有人告诉我我的支持还不会显示。

以上是关于使用 imagick 将图像放在白色背景上的主要内容,如果未能解决你的问题,请参考以下文章

在 Flash 中去除图像上的白色背景

如何使用 PIL 在单个白色背景上检测和裁剪多个图像?

Android:将图像和文本视图放在另一个图像上

如何将背景图像放在圆形组件上?

使用 Imagick 转换透明 PDF 文件

图像裁剪之外的 react-native-perspective-image-cropper 在 IOS 中添加白色背景