我有一个图像,我用GD::Image操纵,我想用Image::Magick做进一步的操作。我想避免将图像写入磁盘,因此Image :: Magick可以读取它。Image :: Magick的Read函数将接受一个文件句柄作为参数,所以我试图将它传递给一个IO :: Scalar我用GD :: Image的输出创建的对象。如何使用IO :: Scalar和Image :: Magick :: Read()?
但是,由于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"
使用裸字的文件句柄和引用类型团是很古老的,这就是为什么他试图用一个标量引用来代替。显然PerlMagick还不明白。 – 2009-05-26 13:24:12
不够公平,尽管我只是逐字地发布了doc代码段,并建议尝试使用真实的$ fh参考。 但是......当我尝试尝试时,这种方式会导致seg故障。 – oeuftete 2009-05-27 13:17:36