我有一张我用GD::Image操作过的图像,我想用Image::Magick做进一步的操作。我想避免将图像写入磁盘,以便 Image::Magick 可以将其读入。Image::Magick 的 Read 函数将接受文件句柄作为参数,因此我试图将其传递给 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"