Archive for the ‘perlMagick’ Category

Меняем разрешение

Wednesday, August 22nd, 2007

Как правило perlMagick используется для хранения фотографий больших форматов под 300dpi. Но для сайтов нужно разрешение по меньше, 72dpi и поэтому надо его менять

#!/usr/bin/perl

use Image::Magick;
#открываем
$img = new Image::Magick->new;
$img->Read($file);
#
$img->Resize(
   geometry=>"90000x800",  # меняем размер на 800 пикселей
   resample=>"72x72"  # выставляем разрешение 72dpi
);

# вывод на прямую в браузер
binmode STDOUT;
print "Content-Type: image/jpeg\n\n";
$img->Write("jpg:-"); 

undef $img;
exit;

Показ фото с водяным знаком

Wednesday, May 2nd, 2007
#!/usr/bin/perl

use Image::Magick;

$img= new Image::Magick->new;
$water = new Image::Magick->new; 

$img->Read($path);
$water->Read($logo);

$img->Composite (
   image=>$water,       # имидж для лого
   compose=>'Dissolve', # растворить - opasity в Photoshop?
   gravity=>'Center',   # позиция (left, top, ...)
   opacity=>40000       # степень прозрачности
);

binmode STDOUT;

print "Content-Type: image/jpeg\\n\\n";
$img->Write("jpg:-");

Изменяем размер

Saturday, April 28th, 2007

в perlmagick можно просто не беспокоится о пропорция если нужно уменьшить по одной стороне

$img = new Image::Magick->new;

теперь скажем надо уменьшить по ширине за 10px

$nsizes=10;
$img->Resize(geometry=>$nsizes."x90000");

или по высоте

$nsizes=10;
$img->Resize(geometry=>"90000x".$nsizes);

при этом пропорции сохранятся, только надо что бы второй параметр был больше, очень больше, по всей видимости Resize всегда происходит по меньшему из двух значений сторон

Перевод из CMYK в RGB

Thursday, April 26th, 2007
#!/usr/bin/perl

use Image::Magick;

$img = new Image::Magick;
$img->Read('10.tif');
$img->Set(colorspace=>'RGB',
          compression=>'JPEG',
          quality=>'100');
$img->Write('11.jpg');
undef $img;
exit;