Мне нужно создать изображения с разрешением "холст" с разрешением 480 x 360 пикселей.
Я создал несколько изображений из удаленного 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.
Похоже, изменение размера при сохранении соотношения сторон при создании фиксированного выходного изображения очень сложно!Часы поиска мне не помогли.
Я восхваляю того, кто предлагает подробное решение.Спасибо.