我写了一个脚本来水印图像。在命令行添加水印工作正常:
composite -dissolve 5% -gravity South watermark.png original.jpg new.jpg
现在,当我尝试使用Perlmagick进行水印时,复合部分并没有改变任何东西:
my $i = new Image::Magick;
my $watermark = $i->Read( "watermark.png" );
my $i2 = new Image::Magick;
my $p = $i->Read( "original.jpg" );
$i->Set( Gravity => 'Center' );
$i->Resize( geometry => "600x600" );
$i->Composite( image=>$watermark, compose=>"Dissolve", opacity=>5, gravity=>"South" );
$i->Write( 'jpg:temp_file' );
这样的脚本大小的图像,但不水印。
问题似乎是我提供溶解度的方式。在命令行上,我可以添加百分比到dissolve-attribute,但在API版本中,溶解本身就是属性。我尝试了不透明度,但这似乎不是正确的方法。
在Perlmagick中使用溶解的正确方法是什么?
编辑:我使用的图片
original
watermark
new(命令composite -dissolve 5% -gravity South watermark.png original.jpg new.jpg
的结果)
1条答案
按热度按时间ecbunoof1#
我尝试了以下方法:
它给了我:
所以你可以看到水印已经被合成到原始文件中了。所以也许
opacity
参数可以这样使用?