perl - 将 Alpha channel 添加到使用 PerlMagick 读取的图像中

标签 perl perlmagick

我正在读取没有 Alpha channel 的图像:

my $image = Image::Magick->new;
$image->Read("./noalpha.png");

然后尝试将某些像素设置为不同的颜色/alpha 值:

my @color = ( 0.2, 0.4, 0.6, $alpha );
$image->SetPixel( x=>$X, y=>$Y, channel=>'RGBA', normalize=>'True', color => \@color);

但是除非起始图像文件已经有 Alpha channel ,否则我写入的文件:

$image->Write('out.png');

不包含 Alpha channel 。

我一直在阅读 PerlMagick 文档,但我一定没有找到正确的东西。有没有办法向我的 $image 对象添加 Alpha channel ?

我是否需要创建一个具有原始图像大小的新图像对象并将所有内容重写到该对象?

最佳答案

Alpha channel 的存在是图像的一个属性,需要开启:

$image->Set(alpha => 'On');

关于perl - 将 Alpha channel 添加到使用 PerlMagick 读取的图像中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33600757/

相关文章:

Perl Image::Magick:将一个图像放在另一个图像的顶部

arrays - 使用哈希引用的最佳方法是什么?

perl - 文件同时传输到多个套接字

perl - 为什么在 BEGIN block 中首先执行 'use' 语句?

javascript - Perl 脚本和 HTML 与 CGI 之间的接口(interface)

c - 来自 PSQL 触发器的提示

image - 如何使用 ImageMagick 模糊/像素化图像的一部分,从而产生大像素?

perlmagick imagemagick 错误