【发布时间】:2011-01-26 08:10:01
【问题描述】:
我需要创建 480w x 360h 像素“画布”内的图像。
我确实从我的远程 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 x 360 的“画布”尺寸。
从 url 缩小原始图像以将宽高比调整为 480w 或 360h,并将其放置在 480x360 画布的中间。
我在某处读到,没有提供任何示例,我可以调整原始图像的大小,同时保持纵横比以校正高度或宽度,以允许图像最大,然后将另一个参数(h 或 w)除以 2,然后制作在此基础上添加边框,然后裁剪到大小。把“他+双曲棍球棒”弄糊涂了。
我很想弄清楚这一点。我什至不确定我的问题是否清楚,是否值得向 stackoverflow 提问。
似乎在创建固定输出图像的同时保持纵横比的同时调整大小非常困难!数小时的搜索对我没有帮助。
我赞扬提供详细解决方案的人。谢谢。
【问题讨论】:
标签: perl resize imagemagick