У меня есть изображение, которым я манипулировал с GD :: Image , и я хочу сделать дальнейшие манипуляции с Image :: Magick . Я бы хотел избежать записи изображения на диск, чтобы Image :: Magick мог его прочитать. Функция чтения Image :: Magick примет файловый дескриптор в качестве параметра, поэтому я пытаюсь передать ему IO :: Scalar объект, который я создал с выводом из GD :: Image.
Однако, поскольку объект IO :: Scalar можно рассматривать как строку, похоже, что Image :: Magick интерпретирует содержимое изображения как имя файла, которое оно не может найти, и Read () завершается ошибкой.
Есть ли другой способ создать файловый дескриптор из скаляра, который ведет себя больше как обычный файловый дескриптор, или есть другой более простой способ выполнить то, что я пытаюсь сделать здесь?
my $FH = new IO::Scalar \$image_bin;
my $magick = Image::Magick->new;
my $response = $magick->Read(file => $FH);
$ ответ:
"Exception 435: unable to open image `????': No such file or directory"