Масштабирование изображения до фиксированной ширины, но без сохранения соотношения сторон

Я хочу масштабировать изображение таким образом, чтобы полученное изображение получило фиксированную ширину, но высота изображения осталась прежней. Как это может быть сделано?

1 ответ

Решение

Вы можете сделать это в командной строке:

convert input.jpg -resize 3x\! output.jpg

! принудительно изменяет размер, и оставляя высоту пустым, она остается неизменной.

# Create it 50x50 and check
convert -size 50x50 xc:black  a.jpg
identify a.jpg
a.jpg JPEG 50x50 50x50+0+0 8-bit Gray 256c 173B 0.000u 0:00.009

# Resize and check
convert a.jpg -resize 3x\! out.jpg
identify out.jpg
out.jpg JPEG 3x50 3x50+0+0 8-bit Gray 256c 162B 0.000u 0:00.000

И версия Perl подобной вещи:

#!/usr/bin/perl
use strict;
use warnings;
use Image::Magick;
my $image;

$image=Image::Magick->new(size=>'500x500');
$image->Read('xc:white');
$image->write("out1.jpg");
$image->Resize(geometry => "3x!");
$image->write("out2.jpg");
Другие вопросы по тегам