Forum Webscript.Ru
Программирование => Perl => Тема начата: APL от 29 Мая 2006, 23:32:38
-
Скачал и Установил PerlMagic, установился нормально, но работает не всегда корректно, а именно:
#!/usr/bin/perl
use Image::Magick;
my $image = new Image::Magick();
my $x = $image->Read("in.jpg");
print "\\n\\n result: $x
\\n";
Если вышеуказанный скрипт запускать с коммандной строки, то работает ок. Если через браузер - выдает
---------------
Exception 420: no delegate for this image format...
---------------
Проблема не с путями к картинке точно - пробовал прописывать и полный путь и менять директорию, если бы не нашел картинку - выдал бы "Exception 430: Unable to open file..."
К системной переменной Path добавил c:\\usr\\site\\lib\\auto\\Image\\Magick
То же прописал в переменную MAGICK_HOME
Тестировалось с Perl 5.6, ОС - WinXP, 2000
Как я понимаю проблема с тем, что perl не видит эти переменные с путями... Поправьте если ошибаюсь...
Замучался уже с ним помогите плиз!
P.S. Причем полноценные скрипты работы с картинками с коммандной строки работают на ура...
-
хмм ... вот пугает меня принт...
незнаю что этот модуль в $x засовывает и в каком виде и боюсь представить что при выводе на печать в браузере творится )use Image::Magick;
$image = Image::Magick->new;
$image->Read(\'01.jpg\');
$color = $image->Get("pixel[$x,$y]");
$image->Set("pixel[$x,$y]" => \'0,0,0,0\');
$image->Write(\'/home/image.ru/www/x01.jpg\');
ну вот сделали новую картинку... открыли файлик 01.jpg ... взяли цвет точки х:у ... переписали цвет ... сохранили в x01.jpg
вроде все основные действия и все работает
для отображения картинки в браузере прсто хтмл тэгом img втыкай
-
В $x модуль засовывает код ошибки, если $x в вышеприведенном примере пустой - все ок, картинка считана. Проблема в том, что Read не работает, причем только если из браузера запускать...
-
заголовки кто писать будет?
-
Да при чем тут заголовки... результат один, что с заголовками, что без... а чем \\n\\n не устраивает в данном случае?...
-
Итак суммирую:
1. Модуль установлен (вместе со всеми dll\'ками).
2. В Path добавлен путь - c:\\usr\\site\\lib\\auto\\Image\\Magick (правильный)
3. В Enviroment Variables добавлено - c:\\usr\\site\\lib\\auto\\Image\\Magick
4. Если запускать с коммандной строки - ВСЕ скрипты (и свои и примеры) работают корректно. Картинки благополучно читаются, модифицируются, пишутся и т.п.
5. Если запускать из браузера - функция Image::Magick->Read(...) возвращает ошибку - " result: Exception 420: no delegate for this image format (filename) [No such file or directory] "
Единственное что приходит на ум...
Наверное есть разница в переменных окружения процесса, запущенного из консоли и апачем...
заголовки, переменные и прочие не имеют значения... не первый год пишу на перле... вот только с модулем этим дело не имел ранее...
Помогите плиз. Заранее спасибо.
-
APL:
Скачал и Установил PerlMagic, установился нормально
Откуда и какой именно пакет ставил?
-
Качал отсюда...
http://www.dylanbeattie.net/magick/download/latest/PerlMagick-full.zip
Версия 5.46
Но ведь работает же... правда не там где надо..
-
А с родного сервера не пробовал установить?
Что выводит $ENV{\'MAGICK_HOME\'}?
Какой веб-сервер используется?
-
>А с родного сервера не пробовал установить?
Рабочий же дистрибутив, а траффик ограничен :) Да и не нашел архив PerlMagick без лишней фигни...
>Что выводит $ENV{\'MAGICK_HOME\'}?
Ничего :( в любом случае
Тестировал с Apache/1.3.12 и Apache/2.x
-
пропиши в конфиге апача
SetEnv MAGICK_HOME путь_к_либам
в этой папке должны быть delegates.mgk и куча других .mgk файлов
APL:
Рабочий же дистрибутив
А я вот в этом не уверен. У меня никогда не было проблем с оригинальным пакетом.
-
Попробую, спасибо.
А можно ссылочку на оригинальный пакет для Win32?
-
Спасибо огромное!!! Проблема решилась после того как SetEnv MAGICK_HOME прописал!
Тему можно закрыть.
-
Оригинал брал вот здесь:
http://www.imagemagick.org/script/perl-magick.php