我需要創建一個480w×360h像素「畫布」內的圖像。Perl - Image :: Magick創建特定大小的圖像「畫布」,同時保持原始圖像的縱橫比?
我確實從我的遠程url創建了一些圖像,沒有問題,從stackoverflow的幫助。但是,我希望保持圖像的高寬比,但最終結果是480x360 ..因此,需要使用「畫布」或邊框,然後使用裁剪技術(從我讀過的),但是,我似乎無法實現。
以下是我有:
#!/usr/bin/perl
use Image::Resize;
use Image::Magick;
use strict;
my $new = 'path/to/image/image.jpg';
my $somewords = 'Some words';
my $imageurl='http://myimageurl.com/image.jpg';
my $p = new Image::Magick;
$p->Read("$imageurl");
my ($origw, $origh) = $p->Get('width', 'height');
#### correct size images get processed here with just annotation ########
if (($origw == 480) && ($origh == 360)){
system("convert $imageurl -fill '#FFFFFF' -font Candice -pointsize 12 -undercolor '#00000080' -gravity SouthEast -annotate +1+1 '$somewords' $new");
}
#### process images of incorrect original size WHERE I AM STUCK #######
if (($origw != 480) && ($origh != 360)){
system("convert $imageurl $new");
system("convert $imageurl -resize 480x360\! -fill '#FFFFFF' -font Candice -pointsize 14 -undercolor '#00000080' -gravity SouthWest -annotate +1+1 '$somewords' $new");
}
我需要的是這樣的:
的480 * 360
A 「畫布」 的大小從URL減少原始圖像糾正寬高比爲480w或360h,並將其放置在480x360畫布的中間。
我讀過某處,沒有提供任何示例,我可以調整原始圖像的大小,同時保持寬高比以正確的高度或寬度,無論哪一個允許圖像最大,然後將其他參數(h或w)除以2,然後根據它添加邊框,然後裁剪大小。迷惑了我「他+雙曲棍球棒」。
我很想弄明白這一點。我甚至不確定這裏的問題是否清楚,值得提問。
看起來像調整大小,同時保持寬高比,同時創建一個固定的輸出圖像是非常困難的!搜索時間沒有幫助我。
我讚揚那位提供詳細解決方案的人。謝謝。
謝謝你,我想今天這個......我將分享我的結果... – DulcimerDude 2011-01-26 12:38:26