Xpoint
   [напомнить пароль]

Работа с изображениями

Изготовление превьюшек (thumbnails) при помощи модуля Image::Magick

# подразумеваем, что:
# $path  - полный путь к оригинальному изображению
# $tpath - полный путь, куда мы хотим сохранить превьюшку

require Image::Magick;     
my $image = Image::Magick->new();
$image->Read($path);
(my $ox, my $oy) = $image->Get('width','height');   
# фиксированная ширина превьюшки 100px, вы можете придумать
# другой алгоритм вычисления размера
my $nx = 100;
my $ny = int($oy / $ox * $nx);

my $e = $image->Thumbnail(width=>$nx, height=>$ny);
if ($e)
{
  print STDERR "Thumbnail creation error: $e\n";   
  return undef;
}
$image->Write($tpath);

Изготовление превьюшек (thumbnails) при помощи модуля GD

# подразумеваем, что:
# $path  - полный путь к оригинальному изображению
# $tpath - полный путь, куда мы хотим сохранить превьюшку

use GD;

# Чтение исходной картинки (1 - полноцветный режим)
$src = newFromJpeg GD::Image($path,1);

# Создание уменьшенной картинки ($x - ширина, $y - высота, 1 - полноцветный режим)
$dst = new GD::Image($x,$y,1);

# Копирование картинки из оригинальной в уменьшенную (copyResampled - качественнее, copyResized - быстрее)
$dst->copyResampled($src,0,0,0,0,$dst->getBounds(),$src->getBounds());

# Запись уменьшенной картинки в файл ($q - качество, от худшего 0 до лучшего 100)
open (DST,">$tpath");
binmode DST;
print DST $dst->jpeg($q);
close DST;
Powered by POEM™ Engine Copyright © 2002-2005