Как уменьшить разрешение картинок в 3 раза (image)
Ключевые слова: image, (найти похожие документы)
- BEST_PEOPLE (2:5077/15.22) ---------------------- BEST_PEOPLE (RU.INTERNET) -
From : Igor Nikolaev 2:5030/266 27 Oct 00 17:24:20
Subj : Как уменьшить разрешение картинок в 3 раза
-------------------------------------------------------------------------------
* Forwarded from area 'RU.INTERNET'
Aleksey Owsiannikow <Aleksey_Owsiannikow@p18.f50.n5045.z2.fidonet.org> wrote:
> Есть много файлов с картинками. Задача сабж. Главное условие, чтоб все это
> делалось автоматически, а не ручками. Где можно скачать такой софт?
Я использую ImageMagic. Он легко привинчивается
к скриптам, сям, перлу, яве, питону, гному и даже маку,
работает на множестве платформ и совершенно даром,
имея кучу разных форматов впроть до стеганографических.
Единственная возникающая проблема - это не попутать
при вызове ключи и не включить какую-нибудь лишнюю
возможность, у ней чуть меньше сотни разных ключей,
причём форматы файлов определяются исходя из имени.
Уменьшить *разрешение* не очень просто:
сначала считываешь разрешение при помощи
identify -verbose файл.формат
Затем устанавливаешь необходимое при помощи
convert -density
Проще всего это сделать на perl (я немного переделал
свою программочку изменения геометрии на тему нужной
тебе resolution :-)
#!/usr/bin/perl -w
my $src = $ARGV[0]; # first - source file name
my $dst = $ARGV[1] || ".new.$src"; # second - destination file name
my @a = `identify -verbose $src`; # get info about image
my $s = (grep /resolution/, @a)[0]; ## get dpi
my ( $xdpi, $ydpi ) = split /x/, ( split / /, $s)[3], -2; # get par value
$xdpi /= 3; $ydpi /= 3; ## change dpi
my $keys = sprintf "-density %dx%d", $xdpi, $ydpi; ## parameters
`convert $keys $src $dst`; # run convert command
rename $dst, $src unless defined $ARGV[1]; # self converting
С другой стороны, мне совершенно непонятно, зачем
задавать разрешение в относительных величинах, ведь
его обычно просто необходимо привести к фиксированному
значению.
Если же ты просто хочешь изменить размер в пикселях,
то это делается куда как проще:
convert -geometry 33.3% a.tiff a.jpeg
создаст из a.tiff файл a.jpeg размером в три раза меньше.
--
Игорь Hиколаев
--- ifmail v.2.12.os.sensi
* Origin: http://www.imagemagick.org (2:5030/266@fidonet)
931 Прочтений • [Как уменьшить разрешение картинок в 3 раза (image)] [08.05.2012] [Комментариев: 0]