我有一個圖像,我用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