Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ImageMagick, Exception 420: no encode delegate .... 
:(
    Опции темы
vitaly1979
Дата 17.4.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 26.2.2006

Репутация: 1
Всего: 1



при вызове метода Write с параметром compression:
Цитата

Exception 420: no encode delegate for this image format

что делать?

ПС
ставил из RPM ImageMagick под линукс
и перловский модуль из исходников 
PM MAIL   Вверх
sharq
Дата 17.4.2006, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



vitaly1979, приведи код программы, посмотрим, что там 

 smile  


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
vitaly1979
Дата 17.4.2006, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 26.2.2006

Репутация: 1
Всего: 1



smile 
весь код:
Код

$r=$image->Write('test.jpg',compression=>'JPEG');

если без compression, то все ок

Добавлено @ 22:20 
размер поменьше надо сделать 
PM MAIL   Вверх
BlackLFL
Дата 18.4.2006, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

Репутация: 8
Всего: 12



Как установить Image::Magick с поддержкой формата jpg? 

Цитата

./configure --with-jpeg=yes LIBS='-L/path_to_lib/lib' CPPFLAGS='-I/path_to_lib/include'
 

Это сообщение отредактировал(а) BlackLFL - 18.4.2006, 09:12
PM WWW   Вверх
sharq
Дата 18.4.2006, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



vitaly1979, это понятно. 

Если у тебя, картинка например в формате bmp, то вполне достаточно указать jpeg расширение:

Код

#!/usr/bin/perl
use Image::Magick;

my $image = Image::Magick->new;

my $x = $image->Read('test.bmp');
warn $x if $x;

$x = $image->Write('test.jpg');
warn $x if $x;


Если тебе надо уменьшить размер, можешь сделать ресайз картинки (см. метод Resize), 
если ты хочешь поиграться с качеством самого jpeg, то компилируй ImageMagick как  BlackLFL предложил.

 smile 
 


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
vitaly1979
Дата 18.4.2006, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 26.2.2006

Репутация: 1
Всего: 1



BlackLFL,  -) видел я такое
я раз 20 пробовал пересобирать  ImageMagick 
с разными параметрами

картинка

в итоге скачал gif compressor
сжимает плохо
получается что ImageMagick сжимает
но на параметр compression(LWZ,Group4 etc) реагирует странно
если например в методе new проставить magick=>'gif', 
то при Write с compression вываливает в stdout файл, при этом сисдинамик пищит

следующий пример делает у меня gif размером в 9,83 КБ (10 070 байт) (gif compressor не сжимает)
вам не кажется что это много для такой картинки?
Код

#! c:\server\perl\bin\perl.exe

use Image::Magick;

my $text=q%
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
%;

        #$image=Image::Magick->new(magick=>'gif');
        $image=Image::Magick->new();

        $r=$image->Set(size=>'500x300');
        warn "$r" if "$r";

        $r=$image->ReadImage("xc:white");
        warn "$r" if "$r";

        $image->Annotate(font=>'verdana',pointsize=>12,fill=>'black',text=>$text);

        $r=$image->Write('C:\Server\www\test_gif.gif'); # ,compression=>'LZW'
        warn "$r" if "$r";

        undef $image;

exit;


Добавлено @ 13:13 
sharq,  лучше этот метод не юзать -)
размер файла картинки увеличился в 4 раза!
Код

        $r=$image->Resize('490x290');
        warn "$r" if "$r";
        $r=$image->Write('C:\Server\www\test_gif_2.gif');
        warn "$r" if "$r";

 
PM MAIL   Вверх
nitr
Дата 18.4.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Поиск на форуме замечательно работает smile Эту (или подобную) тему обсуждали. 


--------------------
PM   Вверх
vitaly1979
Дата 18.4.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 26.2.2006

Репутация: 1
Всего: 1



да, обсуждались оказывается похожие темы
но кокретного решения не нашел
кто-то там пути неправильно прописывал
кто-то резал картинку

jpg меня щас не интересует, поскольку gif меньше получается
может кто-то уменьшал размер с помощью другого модуля? 
PM MAIL   Вверх
nitr
Дата 18.4.2006, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



GD модуль =) 


--------------------
PM   Вверх
sharq
Дата 18.4.2006, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



nitr, 
Цитата(nitr @  18.4.2006,  18:39 Найти цитируемый пост)
GD модуль =)  


Цитата

GD.pm is a Perl interface to Thomas Boutell's gd graphics library (version 2.01 or higher; see below). GD allows you to create color drawings using a large number of graphics primitives, and emit the drawings as PNG files.

Ключевое слово png.  smile 

vitaly1979, я не пойму на фига ты ресайзишь на 10 пикселов, толку от этого нет, ресайз помогает если картинка очень хорошего качества, то можно привести к 800x600 (например или др.) с минимальными потерями и выигрышом в размере.

Раз тебя не устраивает размер gif'ки, то можно подумать из-за чего такой большой размер.
Убрав надпись на картинки, очевидным становиться, что gif становится "тяжелым" только из-за надписи, поэтому ее надо оптимизировать.
Для чего отключи антиалиайзинг, по умолчанию он включен:
Код

$image->Annotate(font=>'verdana.ttf', pointsize=>12, fill=>'black', text=>$text, antialias=>'false');

И размер сразу становится 4 083 б  smile 

Но это заметно на качестве надписи, поэтому выбирай либо красота на 10 кБ, либо легкость с плохим качеством.

 smile 



 


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
nitr
Дата 19.4.2006, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Цитата(sharq @  18.4.2006,  20:29 Найти цитируемый пост)
Ключевое слово png.  smile


http://forum.vingrad.ru/index.php?showtopic=89949 я тут разве зря "извращался" с GIF анимацией
 


--------------------
PM   Вверх
vitaly1979
Дата 19.4.2006, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 26.2.2006

Репутация: 1
Всего: 1



nitr, хороший примерчик 
PM MAIL   Вверх
korob2001
Дата 19.4.2006, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Цитата

Ключевое слово png.

Это уже в далёком прошлом.  smile  


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0664 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.