Imagemagick или фотошоп для perl


Как установить Image :: Magick в PERL версии 5.18

March 2020

931 раз

Мне нужно установить модуль Image :: Магический в машине и учетные данные ниже:

Windows Version — 7

Perl Version 5.18

Кроме того, я пытался так много способов , как cpan ppm и копируются также модуль и непосредственно не вставлен в c:\perl\lib\ and c:\perl\site\lib и к сожалению , не повезло.

Running install for module ‘Image::Magick’
Running make for J/JC/JCRISTY/PerlMagick-6.89-1.tar.gz
Checksum for C:\Perl\cpan\sources\authors\id\J\JC\JCRISTY\PerlMagick-6.89-1.tar.gz ok
./PerlMagick-6.89/
./PerlMagick-6.89/check.sh
./PerlMagick-6.89/Makefile.old
./PerlMagick-6.89/Makefile.nt
./PerlMagick-6.89/check.sh.in
./PerlMagick-6.89/demo/
./PerlMagick-6.89/demo/README
.
./PerlMagick-6.89/t/bzlib/read.t
./PerlMagick-6.89/t/input.fits
./PerlMagick-6.89/Makefile.PL
./PerlMagick-6.89/Makefile.PL.in
./PerlMagick-6.89/MANIFEST.SKIP
./PerlMagick-6.89/Makefile.am
./PerlMagick-6.89/Magick.xs
./PerlMagick-6.89/check

CPAN.pm: Строительство Дж / JC / JCRISTY / PerlMagick-6.89-1.tar.gz

Проверка , если ваш комплект полный .
Выглядит хорошо
Создание dmake стиле Makefile
написание Makefile для изображения :: Magick
Написание MYMETA.yml и MYMETA.json
JCRISTY / PerlMagick-6.89-1.tar.gz
[31m C: \ Perl \ бен \ dmake.exe — NOT OK
тест Running макияж
не может проверить без успешного макияжа
Running сделать установку
Make вернулся плохой статус, установка кажется невозможным

Кажется , что вы пытаетесь установить Perl :: Magick на MS Wi
Perl + компиляторов GCC (например , клубника Perl), однако мы не можем F
двоичные файлы установлены на вашей системе.

Пожалуйста, проверьте следующие условия:

1) Вы должны быть установлены бинарные файлы ImageMagick для Windows от
http://www.imagemagick.org/script/binary-releases.php#window

2) Мы только поддерживать динамический (DLL) ImageMagick двоичных файлов ,
обратите внимание: это не возможно смешивать 32/64-битные двоичные файлы Perl а

3) Во время установки выберите , что вы хотите установить ImageMag
файлы разработки (библиотеки + заголовки)

4) Кроме того, необходимо иметь каталог ImageMagick в вашем PATH
примечание: мы проверяем наличие Convert.exe и / или язя

5) Вы , возможно , потребуется Visual C ++ Redistributable Package установлены
инструкции см на веб — странице Binary Release ImageMagick в

Мы собираемся продолжить, но шансы для успешной сборки являются верами

Предупреждение ( в основном безвредно): Нет библиотеки найдено -lMagickCore
Предупреждения ( в основном безвредны): Нет библиотеки не найдена для -lmoldname
Предупреждения ( в основном безвредно): Нет библиотеки не найдена для -lkernel32
Предупреждения ( в основном безвредной): Нет библиотека не найдена для -luser32
Предупреждения ( в основном безвредны): нет библиотеки не найдена для -lgdi32
предупреждения ( в основном безвредна): нет библиотеки , найденную для -lwinspool
предупреждения ( в основном безвредно): нет библиотеки найдено -lcomdlg32
предупреждения ( в основном безвредный): нет библиотеки не найдено для -ladvapi32
предупреждения ( в основном безвредны ): нет библиотеки не найдено для -lshell32
Предупреждение ( в основном безвредные): нет библиотеки не найдено -lole32
не Предупреждение ( в основном безвредна): нет библиотеки найденную для -loleaut32
Не Предупреждение ( в основном безвредно): Нет библиотеки найденной для -lnetapi32
Предупреждения ( в основном безвредной): библиотека Не найдено ни для -luuid
предупреждения ( в основном безвредно): Нет библиотеки найденную для -lws2_32
Предупреждения ( в основном безвредны): Нет библиотека не найдена для -lmpr
Предупреждения ( в основном безвредно): нет библиотеки не найдена для -lwinmm
предупреждения ( в основном безвредного): нет библиотеку не найдена для -lversion
предупреждения ( в основном безвредного): нет библиотека не найдена -lodbc32
не Предупреждение ( в основном безвредны): нет библиотеки найденную для -lodbccp32
предупреждения ( в основном безвредны ): библиотека Не найдено ни для -lcomctl32 ,
чтобы не определено в C: /Perl/lib/ExtUtils/Install.pm линии 1198.
C: \ Perl \ Bin \ dmake.exe: *** [pm_to_blib] Ошибка 2
Ошибка во время этой команды:
JCRISTY / PerlMagick-6.89-1.tar.gz: не делает никакого
CPAN> выхода
LockFile удален.

После установки ошибка отображается как:

D:> Perl -wc test.pl
Не удается найти изображение / Magick.pm в @INC (возможно , вам необходимо установить> Image :: модуль Магический) (@INC содержит: C: / Perl / сайт / Библиотека C: . / Perl / Библиотека) в test.pl строке 2. между
BEGIN не удалось — компиляция прервана в test.pl строке 2.

Было бы понятно, если кто-то может предложить способ закрыть это.


Image::magick или фотошоп для perl

38 просмотра

1 ответ

1081 Репутация автора

На моем Mac установлено программное обеспечение ImageMagick с homebrew, и я использую модуль Image :: Magick Perl. Я пытаюсь выяснить, как аннотировать изображения с помощью некоторого текста. Ничто из того, что я пробовал, не работает:

Я полагаю, что он не может найти шрифт, но, возможно, что-то еще не так. Ошибка не выдается. Я установил ghostscript с помощью homebrew, но это не помогло.

Частичный вывод из шрифта identifier-list

Ответы (1)

1 плюс

100245 Репутация автора

В общем, если у вас возникают проблемы с поиском текстового вывода с помощью ImageMagick , попробуйте следующие предложения:

Предложение 1

Используйте контрастную заливку и обводку, чтобы быть уверенным в том, что вы видите текст на любом фоне:

Предложение 2

Установите гравитацию на тот center случай, если вы пишете за пределами вашего изображения:

Предложение 3

Укажите полный путь к файлу шрифта, чтобы ImageMagick нашел его, даже если он не настроен в его файлах конфигурации:

Предложение 4

Восстановите изображение после загрузки, чтобы оно забыло о старых настройках страницы, которые могли быть, когда оно ранее было частью более крупного изображения и было обрезано:

Установка цвета фона в Perl Magick Image Conversion

Я использую Perl Magick , который является модулем Perl для Image Magick для преобразования изображений из GIF и PNG в JPEG. Все работает отлично, пока я не попытаюсь преобразовать изображение с прозрачным фоном.

По умолчанию для функции Resize() используется черное, которое разрушает изображения, которые мы пытаемся преобразовать. Я хочу вместо этого изменить цвет фона по умолчанию на белый и не могу понять, как это сделать.


Если вы используете Image Magick в командной строке, вы можете изменить фон, используя:

И вот код Perl, который я использую для изменения размера и преобразования изображения:

Я попробовал следующее, чтобы заставить его работать, но безрезультатно:

Я был бы признателен за любую помощь в выяснении того, как успешно установить фоновый цвет по умолчанию для метода Perl Magick Resize (). Заранее спасибо за вашу помощь!

softelf

блог о программах и веб-сервисах

суббота, 15 июля 2020 г.

Изменение размера изображений с помощью ImageMagick

В статье рассказывается, как при помощи ImageMagick изменять размеры изображений, чтобы результат был практически как при использовании Photoshop.

Какую версию ImageMagick ставить

В статье про продвинутое изменение размеров Nicolas Robidoux рекомендует ставить версию ImageMagick с HDRI. Для этого на странице downloads нужно скачать свежую версию с названием «Q16-HDRI-x64-dll».

Изменяем размеры изображений, чтобы было почти как в Photoshop’е

Вкратце, команда такая:

magick convert -resize 540x -unsharp 0x0.55+0.55+0.008 -quality 90 -interlace line -strip input .jpg output.jpg

Пояснение:

  • 540x — это новый размер в пикселях по ширине,
  • «-unsharp» используется для придачи резкости (фотошоп делает примерно так же),
  • «-interlace line» — прогрессивный jpg,
  • «-strip» — удаляет exif и комментарии,
  • «-quality 90» — уровень сжатия от 1 до 100.
Илон Маск рекомендует:  Тег span

Подробнее про «quality»

По-умолчанию ImageMagick использует значение 92. Но если не указывать параметр «-quality», то IM попытается определить значение исходного файла и использовать его (поэтому лучше всегда явно задавать этот параметр).

Этот параметр отличается от аналогичного в фотошопе:

Photoshop ImageMagick FastStone Image Viewer
0% 55 42
10% 61 51
20% 67 64
30% 69 71
51% 82 81
60% 86 84
70% 91 89
72% 92 90
75% 93 91
80% 94 93
85% 95 94
90% 97 96

Артемий Лебедев в фотографиях из своих путешествий использует, скорее всего, качество 51% в фотошопе, а Илья Варламов — 72%.

Увеличить в два раза

По идее, достаточно указать «-resize 200%». Но не уверен насчет того, нужно ли при увеличении применять фильтр «-unsharp» или менять метод ресамплинга.

Изменить качество jpg


magick convert -quality 67 -interlace line -strip input.jpg output.jpg

Качество для ретины

При подготовке изображений для ретины часто рекомендуют использовать гораздо более смелое сжатие (и визуально разница не будет заметна, потому что изображение показывается на меньшей площади экрана; зато получаемый файл может быть даже меньше размером, чем файл под 1х устройства).

  • Вадим Макеев в презентации про ретину говорит про сжатие «вплоть до 20-30%» в фотошопе.
  • Разные примеры от Netvlies.
  • Айри.рф на Спарке приводят пример со сжатием в 10% в фотошопе.
  • В блоге pieroxy рекомендуют для ретины сжатие 30% в фотошопе, с наглядными сравнительными примерами. (копия в веб архиве)
  • Существует визуальный тестер качества сжатия для ретины.
  • Иногда говорят даже про сжатие 0%.

Другие параметры для изменения размеров

Существует знаменитая статья «Efficient Image Resizing With ImageMagick», в которой автор сделал кучу тестов, чтобы добиться результата как в фотошопе. Но лично у меня его параметры выдают не такую же картинку, а, как минимум, слишком размытую. Хотя, кому-нибудь они наоборот больше подойдут.

Как установить Image :: Magick в perl версии 5.18

Мне нужно установить Image :: Magick модуль в машину, а учетные данные ниже:

Windows Version — 7

Perl Version 5.18

Кроме того, я пробовал так много способов, как cpan ppm а также скопировал модуль и прямо вставил в c:\perl\lib\ and c:\perl\site\lib и, к сожалению, не повезло.

Запуск установки для модуля «Изображение :: Магия»
Запуск для J/JC/JCRISTY/PerlMagick-6.89-1.tar.gz
Контрольная сумма для C:\Perl\cpan\sources\authors\id\J\JC\JCRISTY\PerlMagick-6.89-1.tar.gz ok
. /PerlMagick-6.89/
./PerlMagick-6.89/check.sh
. /PerlMagick-6.89/Makefile.old
. /PerlMagick-6.89/Makefile.nt
. /PerlMagick-6.89/check.sh.in
. /PerlMagick-6.89/demo/
./PerlMagick-6.89/demo/README
.
. /PerlMagick-6.89/t/bzlib/read.t
. /PerlMagick-6.89/t/input.fits
. /PerlMagick-6.89/Makefile.PL
. /PerlMagick-6.89/Makefile.PL.in
. /PerlMagick-6.89/MANIFEST.SKIP
. /PerlMagick-6.89/Makefile.am
. /PerlMagick-6.89/Magick.xs
. /PerlMagick-6.89/check

CPAN.pm: Строительство J/JC/JCRISTY/PerlMagick-6.89-1.tar.gz

Проверка наличия комплекта.
Выглядит неплохо
Создание файла Makefile в стиле dmake
Написание Makefile для изображения :: Magick
Написание MYMETA.yml и MYMETA.json
JCRISTY/PerlMagick-6.89-1.tar.gz
[31m C:\Perl\bin\dmake.exe — НЕ ОК
Выполнение теста
Не удается проверить без успеха
Запуск make install
Make возвратил плохой статус, установка кажется невозможной

Кажется, что вы пытаетесь установить Perl :: Magick на MS Wi
perl + gcc-компилятор (например, клубничный perl), однако мы не можем f
установленных в вашей системе.

Проверьте следующие предварительные условия:

1) Вам необходимо установить бинарные файлы ImageMagick Windows из
http://www.imagemagick.org/script/binary-releases.php#window

2) Мы поддерживаем только динамические (DLL) файлы ImageMagick
примечание: невозможно комбинировать 32/64-битные двоичные файлы perl a

3) Во время установки выберите, что вы хотите установить ImageMag
файлы разработки (библиотеки + заголовки)

4) Вам также необходимо иметь каталог ImageMagick в вашей PATH
Примечание: мы проверяем наличие convert.exe и/или ide

5) Возможно, вам понадобится установленный пакет [Распространяемый пакет] C++
см. инструкции на веб-странице выпуска цифровых изображений ImageMagick

Мы собираемся продолжить, но шансы на успешную сборку верны

Предупреждение (в основном безвредное): Библиотека не найдена для -lMagickCore
Предупреждение (в основном безвредное): библиотеки для -lmoldname
Предупреждение (в основном безвредное): библиотеки для -lkernel32
Предупреждение (в основном безвредное): Библиотека не найдена для -luser32
Предупреждение (в основном безвредное): Библиотека не найдена для -lgdi32
Предупреждение (в основном безвредное): Библиотека не найдена для -lwinspool
Предупреждение (в основном безвредное): Библиотека не найдена для -lcomdlg32
Предупреждение (в основном безвредное): Библиотека не найдена для -ladvapi32
Предупреждение (в основном безвредное): Библиотека не найдена для -lshell32
Предупреждение (в основном безвредное): Библиотека не найдена для -lole32
Предупреждение (в основном безвредное): Библиотека не найдена для -loleaut32
Предупреждение (в основном безвредное): Библиотека не найдена для -lnetapi32
Предупреждение (в основном безвредное): Библиотека не найдена для -luuid
Предупреждение (в основном безвредное): для библиотеки -lws2_32 не найдено ни одной библиотеки
Предупреждение (в основном безвредное): Библиотека не найдена для -lmpr
Предупреждение (в основном безвредное): Библиотека не найдена для -lwinmm
Предупреждение (в основном безвредно): Библиотека не найдена для -lversion
Предупреждение (в основном безвредное): Библиотека не найдена для -lodbc32
Предупреждение (в основном безвредное): Библиотека не найдена для -lodbccp32
Предупреждение (в основном безвредное): Библиотека не найдена для -lcomctl32
к undefined на C: /Perl/lib/ExtUtils/Install.pm строке 1198.
C:\Perl\bin\dmake.exe: *** [pm_to_blib] Ошибка 2
Ошибка при выполнении этой команды:
JCRISTY/PerlMagick-6.89-1.tar.gz: сделать НЕТ
cpan> exit
Файл блокировки удален.


После установки ошибка отображается как:

D:> perl -wc test.pl
Невозможно найти Image/Magick.pm в @INC (вам может потребоваться установить модуль> Image :: Magick) (@INC содержит: C: /Perl/site/lib C: /Perl/lib.) При тестировании. строка 2.
BEGIN failed — компиляция отменена на test.pl строке 2.

Было бы хорошо, если бы кто-то мог предложить способ закрыть это.

ImageMagick

Всем доброго утра\дня\вечера\ночи

Сразу к делу, ибо достал меня этот PerlMagick

Значит так, скачал с оф. сайта ImageMagick-6.8.7-1-Q16-x86-dll.exe и установил его на Windows 7 64 SP1 Корпоративная
В переменной окружения PATH добавил путь к ImageMagick. У меня это C:\ImageMagick

В системе установлен Perl 5.18.1 сборка MSWin32-x86-multi-thread-64int (Strawberry Perl)
В переменной PATH пути к perl так же имеются.

В него входит так же набор компиляторов и прочих утилит.
gcc версия 4.7.3

Скачал отдельно с оф. сайта ImaMagick 6.8.7-1.zip в виде исходников. В архиве имеется PerlMagick.

Из папки PerlMagick пробую установку:
perl Makefile.pl
dmake
dmake install

Сразу скажу, что мучаюсь уже недели три, и что я только не пробовал, установка завершается разными ошибками.
Пробовал даже собирать ImageMagick из исходников в MSVS2010, что заканчивается так же неудачей.

Установка типа cpan install Image::Magick заканчивается с ошибкой.
Так же perl -MCPAN -e shell и потом install Image::Magick опять не к чему ни приводит.

Скорее всего, я что то не понимаю и не так делаю. Но почитав множество форумов на английском, я понял, что дело в том, что при сборке модуля PerlMagick для Strawberry Perl компилятор\линкер не может найти какие то библиотеки и так же может быть несоответствие в версиях этих библиотек.

Пробовал разные версии как самого ImageMagick для windows, так и PerlMagick, ну и другие версии Strawberry Perl (более ранние), ничего не выходит. Что самое удивительное, на ActivePerl ImageMagick ставится через ppm manager без проблем.

Чтобы не было вопросов у форумчан, зачем мне всё это:
Хочется использовать Padre в качестве IDE для Strawberry Perl, который с более ранними версиями Perl идёт уже в комплекте, а на более поздние можно поставить как модуль, что я и сделал.

Так же я хочу работать с текстурами в Perl OpenGL, но насколько мне известно, сам модуль OpenGL этого не позволяет и нужен модуль наподобие Image::Magick. Может я ошибаюсь, но c помощью модуля GD у меня это не получилось.

Если есть способ работать с текстурами в Perl OpenGL не используя Image::Magick, буду рад узнать об этом.
Эмм, так же, если кто просветит меня на тему как работать с файлами текстур без дополнительных модулей, где взять литературу на эту тему, так же буду рад! Я понимаю, что файлы текстур это массив двоичных данных оформленный определенным образом, но опыта работы с ними нет, к сожалению.

Намеренно, не привожу список ошибок, так как он очень большой.
Просто, на данном этапе, хочу узнать, есть ли другие способы работы с текстурами в Perl OpenGL?
Если нет, то как правильно поставить Image::Magick на Strawberry Perl в Windows 7?

P.S.
Писать OpenGL программы в С\С++ не предлагать, сейчас интересует только Perl.
Так же, просьба, не предлагать ставить ActivePerl

P.P.S.
Буду рад любой полезной информации на тему работы графики с использованием Perl + OpenGL в контексте текстурирования.
Спасибо!

Добавлено через 8 часов 21 минуту
UP!


Image::Magick jpeg compression — PERL Miscellaneous

Hi all, I’ve been banging my head against a wall trying to use Image::Magick to generate jpeg compressed thumbnails. Here’s latest iteration of the code I’ve been using; my $image = Image::Magick->new; $image->Read(filename=>$source); $image->Resize(width=>400, height=>300); $image->Write(filename=>$output); $image->Resize(width=>100, height=>75); $image->Set(Quality=>10); $image->Write(filename=>$thumb, compression=>’JPEG’); undef $image; Basically, I’m trying to read a source image, resize to 400×300 and write that, then resize to 100×75 and then write that. I notice that the typical filesize I get for the 400×300 image is between 50-60k, however the filesize for the thumbnail is roughly 25k. Using Paintshop Pro I can produce compressed images of around 5k. .

Thread Tools
Display
  • Linear Mode
  • Switch to Hybrid Mode
  • Switch to Threaded Mode

Image::Magick jpeg compression

I’ve been banging my head against a wall trying to use Image::Magick
to generate jpeg compressed thumbnails.

Here’s latest iteration of the code I’ve been using;
my $image = Image::Magick->new;
$image->Read(filename=>$source);
$image->Resize(width=>400, height=>300);
$image->Write(filename=>$output);
$image->Resize(width=>100, height=>75);
$image->Set(Quality=>10);
$image->Write(filename=>$thumb, compression=>’JPEG’);
undef $image;

Basically, I’m trying to read a source image, resize to 400×300 and
write that, then resize to 100×75 and then write that. I notice that
the typical filesize I get for the 400×300 image is between 50-60k,
however the filesize for the thumbnail is roughly 25k. Using
Paintshop Pro I can produce compressed images of around 5k.

Any pointers as to what I’m doing wrong would be great, as I find the
doentation on the Image::Magick website a bit short on detail.

Re: Image::Magick jpeg compression

I’ve since realised that ‘Quality’ should have been ‘quality’, and I’ve
tried

my $image = Image::Magick->new;
$image->Read(filename=>$source);
$image->Resize(width=>400, height=>300);
$image->Write(filename=>$output);
$image->Resize(width=>100, height=>75);
$image->Set(compression=>’JPEG’);
$image->Set(quality=>90);
$image->Write(filename=>$thumb);
undef $image;

to see if that made a difference, but with no luck — the output filesize
remains
unchanged, no matter what value I put in for the quality.

Re: Image::Magick jpeg compression

Andrew> I’ve since realised that ‘Quality’ should have been ‘quality’,


Given the arcane interface of ImageMagick, I wouldn’t be surprised
if it wasn’t «uality».


Randal L. Schwartz — Stonehenge Consulting Services, Inc. — +1 503 777 0095

Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

Re: Image::Magick jpeg compression

: I’ve been banging my head against a wall trying to use Image::Magick
: to generate jpeg compressed thumbnails.
:
: Here’s latest iteration of the code I’ve been using;
: my $image = Image::Magick->new;
: $image->Read(filename=>$source);
: $image->Resize(width=>400, height=>300);
: $image->Write(filename=>$output);
: $image->Resize(width=>100, height=>75);
: $image->Set(Quality=>10);
: $image->Write(filename=>$thumb, compression=>’JPEG’);
: undef $image;
:
: Basically, I’m trying to read a source image, resize to 400×300 and
: write that, then resize to 100×75 and then write that. I notice that
: the typical filesize I get for the 400×300 image is between 50-60k,
: however the filesize for the thumbnail is roughly 25k. Using
: Paintshop Pro I can produce compressed images of around 5k.
:
: Any pointers as to what I’m doing wrong would be great, as I find the
: doentation on the Image::Magick website a bit short on detail.

I recall seeing what you describe with a thumbnail generator of my
own. The files shrank dramatically when I inserted a call to the
Profile() method, which removed a huge chunk of data that was being
carried forward from the full-size image to the thumbnail.

$magick->Read( $ifile );
$magick->Profile();
$magick->Resize( width=>$x, height=>$y );
$magick->Write( $ofile );

I’m not sure anymore what an «ICC or IPTC image profile» is or why it
has to be removed manually, but it made sense back when I wrote the
program.

IOW, I don’t know what I’m doing, but it did the trick.
Cargo cult programming is bad, mmkay?

Image::magick или фотошоп для perl

38 просмотра

1 ответ

1081 Репутация автора

На моем Mac установлено программное обеспечение ImageMagick с homebrew, и я использую модуль Image :: Magick Perl. Я пытаюсь выяснить, как аннотировать изображения с помощью некоторого текста. Ничто из того, что я пробовал, не работает:

Я полагаю, что он не может найти шрифт, но, возможно, что-то еще не так. Ошибка не выдается. Я установил ghostscript с помощью homebrew, но это не помогло.

Частичный вывод из шрифта identifier-list

Ответы (1)

1 плюс

100245 Репутация автора

В общем, если у вас возникают проблемы с поиском текстового вывода с помощью ImageMagick , попробуйте следующие предложения:

Предложение 1

Используйте контрастную заливку и обводку, чтобы быть уверенным в том, что вы видите текст на любом фоне:

Предложение 2


Установите гравитацию на тот center случай, если вы пишете за пределами вашего изображения:

Предложение 3

Укажите полный путь к файлу шрифта, чтобы ImageMagick нашел его, даже если он не настроен в его файлах конфигурации:

Предложение 4

Восстановите изображение после загрузки, чтобы оно забыло о старых настройках страницы, которые могли быть, когда оно ранее было частью более крупного изображения и было обрезано:

Image::magick или фотошоп для perl

Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

Image::Magick или фотошоп для perl
Если вы занимались когда-либо обработкой изображений с помощью perl. То Вы наверное знаете, что то средство, которое нам предлагается повсюду не всегда хорошо подходит для наших нужд. Я конечно имею ввиду модуль GD. Почему он нам не подходит?
Начну по-порядку.
Во-первых, при resize изображения:
$thumb->copyResized($srcImage,0,0,0,0,$oxn,$oyn,$ox,$oy);

Мы получаем очень, не качественно уменьшенную (или увеличенную) картинку, да и еще не качественно закомпрессированную. Например, в моем случае GD из jpeg изображения 640х480 (25 kb) при уменьшении в 200х150 создавала не качественное изображение весом всего на 20% меньше (

20kb). Хотя при уменьшеении ACDSee 5 (ACD FotoCanvas Lite 2.0) картинка занимала всего

5 kb и при этом была отличного качества. Вы подумаете, мол сохраняй её по-человеческий, задай уровень сжатия jpeg — 80 и всё будет путем. Ан нет.
print OUT $thumb->jpeg(80);

Результат еще хуже. Размер больше изначального. Во-вторых, не внушает список функция GD. Нет, он внушает, но предназначен не много не для наших целей. С помощью GD удобно сделать надпись на точном изображении. В особенности .PNG. А например обрезать изображение, вытянуть, поменять цвета и вставить в него другое изображение с помощью GD уже не удобно. В-третьих, у нас нет возможности делать GIF изображения. В том числе анимационные .gif файлы. Что тоже хочется. Итак. Image::Magick со всем справляется великолепно. Покажу для начала пример, изменения картинки jpg.
Есть photo.jpg. Размер 640х272. Замечу что фото изначально не очень качественное. 12621 bytes.

Задача сделать чтобы она была размером 200х150.
use Image::Magick; #используем модуль
my($image, $x); #переменные
$image = Image::Magick->new; #новый проект
$x = $image->Read(«photo.jpg»); #открываем файл
#определяем ширину и высоту изображения
($ox,$oy)=$image->Get(‘base-columns’,’base-rows’);

$nx=int(($ox/$oy)*150); #вычисляем ширину, если высоту сделать 150
#Делаем resize (изменения размера)
$image->Resize(geometry=>geometry, width=>$nx, height=>150);
if($nx>200) < #Если ширина получилась больше 200
$nnx=int(($nx-200)/2); #Вычисляем откуда нам резать
$image->Crop(x=>$nnx, y=>0); #Задаем откуда будем резать
$image->Crop(‘200×150’); #С того места вырезаем 200х150
>
$x = $image->Write(«photo.jpg»); #Сохраняем изображение.

Результат. Картинка 200х150 великолепного качества. 4206 bytes.

Как видите всё проще пареной репы. :)
Таким образом мы можем получить, например, из 300х180. Изображение 200х150. Что очень удобно, для сайтов с ограниченным дизайном. К примеру, если это иллюстрация к статьям, и Вы хотите чтобы картинки были одинакового размера. Есть в этом примере и один недостаток. Это — если ширина меньше 200, что изображение будет уже неодинакового размера. То есть при высоте 150 ширина будет меньше 200. Изменить этот недостаток очень легко. Нужно всего лишь проверить что больше ширина/200 или высота/150 и если больше высота/150, то изменять размер не ширины, а высоты и резать не ширину, а высоту.
Следующий пример. Выравнивает контрастность и нормализирует цвета.
use Image::Magick; #используем модуль
my($image, $x); #переменные
$image = Image::Magick->new; #новый проект
$x = $image->Read(«photo.jpg»); #открываем файл
$image->Contrast(); #Контрастность
$image->Normalize(); #Нормализуем
$x = $image->Write(«photo.jpg»); #Сохраняем изображение.

Получаем. 4647 bytes.

Сделаем изображение черно-белым.
use Image::Magick; #используем модуль
my($image, $x); #переменные
$image = Image::Magick->new; #новый проект
$x = $image->Read(«photo.jpg»); #открываем файл
$image->Quantize(colorspace=>’gray’);
$x = $image->Write(«photo.jpg»); #Сохраняем изображение.

Получаем. 4159 bytes.
Очень часто нам нужно конвертировать изображения из одного формата в другой. Сделать это также легко.
use Image::Magick; #используем модуль
my($image, $x); #переменные
$image = Image::Magick->new; #новый проект
$x = $image->Read(«photo.jpg»); #открываем файл jpg
$x = $image->Write(«photo.png»); #Сохраняем изображение png.

В результат изображение в формате png.

Так мы сможем открыть gif изображение. В данном случае первый фрейм.
$x = $image->Read(«photo.gif[0]»);

Полный набор возможностей и инструментов Вы найдете в документации модуля. Возможности на самом деле сопоставимы с возможностями фотошопа. Но всё же, Image::Magick хорош именно для редактирования изображений. Для точных изображений, рекомендую всё же использовать GD.

Опубликовал Kest Октябрь 31 2008 18:36:03 · 0 Комментариев · 7145 Прочтений ·

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •

Комментарии
Нет комментариев.
Добавить комментарий


Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь .

Как установить Image :: Magick в PERL версии 5.18

March 2020

931 раз

Мне нужно установить модуль Image :: Магический в машине и учетные данные ниже:

Windows Version — 7

Perl Version 5.18

Кроме того, я пытался так много способов , как cpan ppm и копируются также модуль и непосредственно не вставлен в c:\perl\lib\ and c:\perl\site\lib и к сожалению , не повезло.

Running install for module ‘Image::Magick’
Running make for J/JC/JCRISTY/PerlMagick-6.89-1.tar.gz
Checksum for C:\Perl\cpan\sources\authors\id\J\JC\JCRISTY\PerlMagick-6.89-1.tar.gz ok
./PerlMagick-6.89/
./PerlMagick-6.89/check.sh
./PerlMagick-6.89/Makefile.old
./PerlMagick-6.89/Makefile.nt
./PerlMagick-6.89/check.sh.in
./PerlMagick-6.89/demo/
./PerlMagick-6.89/demo/README
.
./PerlMagick-6.89/t/bzlib/read.t
./PerlMagick-6.89/t/input.fits
./PerlMagick-6.89/Makefile.PL
./PerlMagick-6.89/Makefile.PL.in
./PerlMagick-6.89/MANIFEST.SKIP
./PerlMagick-6.89/Makefile.am
./PerlMagick-6.89/Magick.xs
./PerlMagick-6.89/check

CPAN.pm: Строительство Дж / JC / JCRISTY / PerlMagick-6.89-1.tar.gz

Проверка , если ваш комплект полный .
Выглядит хорошо
Создание dmake стиле Makefile
написание Makefile для изображения :: Magick
Написание MYMETA.yml и MYMETA.json
JCRISTY / PerlMagick-6.89-1.tar.gz
[31m C: \ Perl \ бен \ dmake.exe — NOT OK
тест Running макияж
не может проверить без успешного макияжа
Running сделать установку
Make вернулся плохой статус, установка кажется невозможным

Кажется , что вы пытаетесь установить Perl :: Magick на MS Wi
Perl + компиляторов GCC (например , клубника Perl), однако мы не можем F
двоичные файлы установлены на вашей системе.

Пожалуйста, проверьте следующие условия:

1) Вы должны быть установлены бинарные файлы ImageMagick для Windows от
http://www.imagemagick.org/script/binary-releases.php#window

2) Мы только поддерживать динамический (DLL) ImageMagick двоичных файлов ,
обратите внимание: это не возможно смешивать 32/64-битные двоичные файлы Perl а

3) Во время установки выберите , что вы хотите установить ImageMag
файлы разработки (библиотеки + заголовки)

4) Кроме того, необходимо иметь каталог ImageMagick в вашем PATH
примечание: мы проверяем наличие Convert.exe и / или язя

5) Вы , возможно , потребуется Visual C ++ Redistributable Package установлены
инструкции см на веб — странице Binary Release ImageMagick в

Мы собираемся продолжить, но шансы для успешной сборки являются верами

Предупреждение ( в основном безвредно): Нет библиотеки найдено -lMagickCore
Предупреждения ( в основном безвредны): Нет библиотеки не найдена для -lmoldname
Предупреждения ( в основном безвредно): Нет библиотеки не найдена для -lkernel32
Предупреждения ( в основном безвредной): Нет библиотека не найдена для -luser32
Предупреждения ( в основном безвредны): нет библиотеки не найдена для -lgdi32
предупреждения ( в основном безвредна): нет библиотеки , найденную для -lwinspool
предупреждения ( в основном безвредно): нет библиотеки найдено -lcomdlg32
предупреждения ( в основном безвредный): нет библиотеки не найдено для -ladvapi32
предупреждения ( в основном безвредны ): нет библиотеки не найдено для -lshell32
Предупреждение ( в основном безвредные): нет библиотеки не найдено -lole32
не Предупреждение ( в основном безвредна): нет библиотеки найденную для -loleaut32
Не Предупреждение ( в основном безвредно): Нет библиотеки найденной для -lnetapi32
Предупреждения ( в основном безвредной): библиотека Не найдено ни для -luuid
предупреждения ( в основном безвредно): Нет библиотеки найденную для -lws2_32
Предупреждения ( в основном безвредны): Нет библиотека не найдена для -lmpr
Предупреждения ( в основном безвредно): нет библиотеки не найдена для -lwinmm
предупреждения ( в основном безвредного): нет библиотеку не найдена для -lversion
предупреждения ( в основном безвредного): нет библиотека не найдена -lodbc32
не Предупреждение ( в основном безвредны): нет библиотеки найденную для -lodbccp32
предупреждения ( в основном безвредны ): библиотека Не найдено ни для -lcomctl32 ,
чтобы не определено в C: /Perl/lib/ExtUtils/Install.pm линии 1198.
C: \ Perl \ Bin \ dmake.exe: *** [pm_to_blib] Ошибка 2
Ошибка во время этой команды:
JCRISTY / PerlMagick-6.89-1.tar.gz: не делает никакого
CPAN> выхода
LockFile удален.

После установки ошибка отображается как:

D:> Perl -wc test.pl
Не удается найти изображение / Magick.pm в @INC (возможно , вам необходимо установить> Image :: модуль Магический) (@INC содержит: C: / Perl / сайт / Библиотека C: . / Perl / Библиотека) в test.pl строке 2. между
BEGIN не удалось — компиляция прервана в test.pl строке 2.

Было бы понятно, если кто-то может предложить способ закрыть это.

Илон Маск рекомендует:  Что такое код gzopen
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL
Рейтинги