我有一个图像(JPEG),我想无缝地叠加在另一个图像上。如果我想在Photoshop中做这件事,我会把它的边缘羽毛化。但我想不出如何用PerlMagick api来实现这一点。我试着用小插曲来制造模糊的边界,但这不像我所希望的那样有效。
use Image::Magick;
$file = 'background.jpg';
$image = Image::Magick->new;
open(IMAGE, $file ) or die "Error cannot open file: $file";
$image->Read(file=>\*IMAGE);
close(IMAGE);
$file = 'face.jpg';
$face = Image::Magick->new;
open(IMAGE, $file ) or die "Error cannot open file: $file";
$face->Read(file=>\*IMAGE);
close(IMAGE);
$face->Vignette (geometry=>'5x5', radius=>50, x=>5, y=>5, background=>none);
$image->Composite(image=>$face,compose=>'hardlight',geometry=>'+480+800');
print "Content-type: image/jpeg\n\n";
binmode STDOUT;
$image->Write('jpg:-');发布于 2021-07-30 00:35:43
硬边是由x=>5,y=>5,参数引起的。移除这些值和半径值,图像将根据需要合并。硬光结合的微光过程创造和区域,这两个图像是混合。因此,守则应该是:
use Image::Magick;
$file = 'background.jpg';
$image = Image::Magick->new;
open(IMAGE, $file ) or die "Error cannot open file: $file";
$image->Read(file=>\*IMAGE);
close(IMAGE);
$file = 'face.jpg';
$face = Image::Magick->new;
open(IMAGE, $file ) or die "Error cannot open file: $file";
$face->Read(file=>\*IMAGE);
close(IMAGE);
$face->Vignette (geometry=>'5x5', background=>none);
$image->Composite(image=>$face,compose=>'hardlight',geometry=>'+480+800');
print "Content-type: image/jpeg\n\n";
binmode STDOUT;
$image->Write('jpg:-');https://stackoverflow.com/questions/68557570
复制相似问题