首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用PerlMagick对图像边缘进行“羽毛”处理

如何用PerlMagick对图像边缘进行“羽毛”处理
EN

Stack Overflow用户
提问于 2021-07-28 09:14:23
回答 1查看 85关注 0票数 2

我有一个图像(JPEG),我想无缝地叠加在另一个图像上。如果我想在Photoshop中做这件事,我会把它的边缘羽毛化。但我想不出如何用PerlMagick api来实现这一点。我试着用小插曲来制造模糊的边界,但这不像我所希望的那样有效。

代码语言:javascript
复制
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:-');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-30 00:35:43

硬边是由x=>5,y=>5,参数引起的。移除这些值和半径值,图像将根据需要合并。硬光结合的微光过程创造和区域,这两个图像是混合。因此,守则应该是:

代码语言:javascript
复制
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:-');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68557570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档