URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 3913
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Масштабирование картинки на Perl (модуль Image::Magick) без потери качества"

Отправлено auto_tips , 28-Июн-04 11:44 
use Image::Magick;
my $image = Image::Magick->new; #новый проект
my $x = $image->Read("photo.jpg"); #открываем файл
my ($ox,$oy)=$image->Get('base-columns','base-rows'); #определяем ширину и высоту изображения
my $nx=int(($ox/$oy)*150); #вычисляем ширину, если высоту сделать 150
$image->Resize(geometry=>geometry, width=>$nx, height=>150); #Делаем resize (изменения размера)
if($nx > 200) { #Если ширина получилась больше 200
   my $nnx = int(($nx-200)/2); #Вычисляем откуда нам резать
   $image->Crop(x=>$nnx, y=>0); #Задаем откуда будем резать
   $image->Crop('200x150'); #С того места вырезаем 200х150
}
$x = $image->Write("photo.jpg"); #Сохраняем изображение.

URL: http://www.webscript.ru/stories/02/11/11/9439190
Обсуждается: http://www.opennet.me/tips/info/404.shtml


Содержание

Сообщения в этом обсуждении
"Масштабирование картинки на Perl (модуль ImageMagick) без потери качества"
Отправлено Motodor , 28-Июн-04 11:44 
В коде присутствует ошибка

$image->Resize(geometry=>geometry, width=>$nx, height=>150);

должно выглядить как

$image->Resize(width=>$nx, height=>150);

это баг самого Magick'a .


"Масштабирование картинки на Perl (модуль Image::Magick) без потери качества"
Отправлено Den , 04-Май-06 12:11 
Ниче не баг.
Note, that the geometry parameter is a short cut for the width and height parameters (e.g. geometry=>'106x80' is equivalent to width=>106, height=>80 ).

"Масштабирование картинки на Perl (модуль Image::Magick) без потери качества"
Отправлено Den , 05-Май-06 13:16 
И еще, строки:
$image->Crop(x=>$nnx, y=>0);
$image->Crop('200x150');
Должны выглядеть как:
$image->Crop(x=>$nnx, y=>0, geometry=>200x150);

"Масштабирование картинки на Perl (модуль Image::Magick) без потери качества"
Отправлено SKi , 08-Окт-07 21:02 
Кавычки тоже надо:
_Должны выглядеть как:
$image->Crop(x=>$nnx, y=>0, geometry=>'200x150');