2014-10-13 4 views
-2

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

ответ

3

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

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");