The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Масштабирование картинки на Perl (модуль Image::Magick) без потери качества
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"); #Сохраняем изображение.
 
10.01.2003 , Автор: Леонид Палагин , Источник: http://www.webscript.ru/stories/02/...
Ключи: resize, file, size, bandwidth, image, perl, module
Раздел:    Корень / Программисту и web-разработчику / Perl / Полезные подпрограммы на Perl / Обработка изображений на Perl

Обсуждение [ RSS ]
  • 1, Motodor (?), 11:44, 28/06/2004 [ответить]  
  • +/
    В коде присутствует ошибка

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

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

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

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

     
  • 2, Den (??), 12:11, 04/05/2006 [ответить]  
  • +/
    Ниче не баг.
    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 ).
     
  • 3, Den (??), 13:16, 05/05/2006 [ответить]  
  • +/
    И еще, строки:
    $image->Crop(x=>$nnx, y=>0);
    $image->Crop('200x150');
    Должны выглядеть как:
    $image->Crop(x=>$nnx, y=>0, geometry=>200x150);
     
  • 4, SKi (?), 21:02, 08/10/2007 [ответить]  
  • +/
    Кавычки тоже надо:
    _Должны выглядеть как:
    $image->Crop(x=>$nnx, y=>0, geometry=>'200x150');
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру