Ключевые слова:web, image, resize, cgi, (найти похожие документы)
From: Maxim Chirkov <mc@tyumen.ru>
Subject: Изменение параметров изображений из скрипта
Изменяем размер картинки.
Способ изменение размера картинки с помощью утилиты pnmscale:
djpeg -pnm -dct float IMAGE.JPG | pnmscale -ysize 150 |\
cjpeg -quality 70 -optimize -progressive -dct float > tumb_IMAGE.JPG
Где, IMAGE.JPG - исходное изображение,
tumb_IMAGE.JPG - изображение по оси Y уменьшенное до 150 пикселов, по
оси X уменьшенно соразмерно.
-------------------------------
Использование ImageMagic
Утилиты входящие в комплект ImageMagic:
convert - преобразование форматов и манипуляции над изображением.
identify - получение данных о формате, разрешении и других характеристиках
изображения.
import - программа для записи образа окна или экрана XWindow в файл.
animate - показ группы изобаражений на экране XWindow.
montage - создание изображения на основе нескольких картинок (монтаж).
mogrify - трансформация изображений.
combine - наложение изображений.
Все операции могут быть выполнены интерактивно в XWindow с помощью команды
display.
Примеры:
# Преобразуем tiff картинку в PostScript документ формата A4 (картинка будет в левом нижнем углу).
convert -page A4+0+0 image.tiff document.ps
# На картинке test.jpg сделаем надпись начиная от точки 100x100, синим цветом
# шрифтом helvetic "TEST" и запишем в test2.jpg
convert -font helvetica -pen blue -draw "text 100,100 TEST" test.jpg test2.jpg
# Создадим изображение размером 640x480 и заполним его повторяющимися
# картинками bumps.jpg.
convert -size 640x480 tile:bumps.jpg tiled.png
# Создадим анимированный gif из группы файлов dna.* с задержкой 20/100 сек.
convert -delay 20 dna.* dna.gif
# Изменим размер картинки до 100x50 и запишем в tumb.jpg
convert -geometry 100x50 test.jpg tumb.jpg
# Уменьшим размер картинки на 50% и запишем в tumb.jpg
convert -geometry 50% test.jpg tumb.jpg
# Вырежем кусок размером 100x50 из файла test.jpg начиная с позиции 200x200
# и запишем результат в tumb.jpg
convert -crop 100x50+200+200 test.jpg tumb.jpg
-------------------------------
Работа с изображениями в Perl (пакет PerlMagick).
Для использования всех манипуляций над изображением в perl скриптах,
должен использоваться модуль Image::Magick.
Пример скрипта использующего Image::Magick познакомит с базовой технологией
использования пакета:
----------
#!/usr/local/bin/perl
# Читаем 3 gif картинки, вырезаем кусок в каждой и записываем результат
# как анимированный gif файл.
use Image::Magick;
my($q, $x);
$q = Image::Magick->new;
$x = $q->Read('girl.gif', 'logo.gif', 'rose.gif');
warn "$x" if "$x";
$x = $q->Crop(geometry=>'100x100+100+100');
warn "$x" if "$x";
$x = $q->Write('x.gif');
warn "$x" if "$x";
-------------
-------------
#!/usr/local/bin/perl
use Image::Magick;
my($q, $r);
$q = new Image::Magick;
$q->Read('x1.gif');
$q->Read('j*.jpg');
$q->Read('k.miff[1,5,3]');
$q->Contrast;
for ($x = 0; $q->[x]; $x++)
{
$q->[x]->Frame('100x200') if $q->[x]->Get('magick') eq 'GIF';
undef $q->[x] if $q->[x]->Get('columns') < 100;
}
$r = $q->[1];
$r->Draw(pen=>'red', primitive=>'rectangle', points=>20,20 100,100');
$r->Draw(pen=>'red', primitive=>'rectangle', points=>'20,20 100,100 40,40 200,200 60,60 300,300');
$s = $q->Montage;
undef $q;
$s->Write('x.miff');
$q = Image::Magick->new;
$q->Set(size=>'100x100');
$q->ReadImage('xc:white');
$q->Set('pixel[49,49]'=>'red');
$q->Quantize(colorspace=>'gray');
--------------