The OpenNET Project / Index page

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

Обработка изображений на Perl

   Корень / Программисту и web-разработчику / Perl / Полезные подпрограммы на Perl / Обработка изображений на Perl

----* Русский язык в графиках GD::Graph   Автор: dawnshade  [комментарии]
 
Для рисования русских букв, слов на графиках, построенных модулем perl GD::Graph необходимо все 
переменные с русским тексом перевести в кодировку utf8.
Например модулем Unicode::Map8:
    my $unicoded_txt = Unicode::Map8->new("cp1251");

Дополнительно нужно указать ttf шрифт, поддерживающий unicode. Например виндовый arial.ttf:
    $graph->set_value_font('/usr/share/fonts/arial.ttf', 9);

Опробовано с p5-GD-Graph-1.43 и p5-Unicode-Map8-0.12.
 
----* Как на perl сконвертировать изображения из одного формата в другой (доп. ссылка 1)   Автор: Леонид Палагин  [обсудить]
 
use Image::Magick;
my $image = Image::Magick->new; #новый проект
my $x = $image->Read("photo.jpg"); #открываем файл jpg
$x = $image->Write("photo.png"); #Сохраняем изображение png.
 
----* Как нормализовать цвета и контрастность изображения через Image::Magic (доп. ссылка 1)   Автор: Леонид Палагин  [обсудить]
 
use Image::Magick;
my $image = Image::Magick->new; #новый проект
my $x = $image->Read("photo.jpg"); #открываем файл
$image->Contrast(); #Контрастность
$image->Normalize(); #Нормализуем цвета
$x = $image->Write("photo.jpg"); #Сохраняем изображение.
 
----* Масштабирование картинки на Perl (модуль Image::Magick) без потери качества (доп. ссылка 1)   Автор: Леонид Палагин  [комментарии]
 
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"); #Сохраняем изображение.
 

 Версия для печати




  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor