[英]How to “feather” the edges on image with PerlMagick
我有一個圖像 (JPEG),我想無縫地疊加在另一個圖像上。 如果我在 Photoshop 中嘗試這樣做,我會羽化邊緣。 但是我不知道如何使用 PerlMagick api 來實現這一點。 我曾嘗試使用 Vignette 創建一個模糊的邊框,但這並不像我希望的那樣工作。
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:-');
硬邊是由 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:-');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.