2013-03-03 32 views
2

我使用Image::Magick來修改我的圖像。然後,我使用HTTP::Request將圖像內容發送到API。Perl Image :: Magick獲取內存中的內容

HTTP::Request有一個content方法,它允許您設置請求的內容,但顯然這需要您有內存中的內容。

我知道我可以通過打開一個文件並讀取它來將圖像的內容讀入一個變量。但是,由於Image::Magick已經有內存中的圖像內容,有沒有什麼辦法可以通過我的Image::Magick對象獲取?謝謝!

回答

4

Image::Magick將圖像保存在內存中的自定義格式中,以使其更加簡單高效地進行操作。在將數據寫入文件之前,它必須將數據壓縮爲JPEG,PNG或其他任何格式,因此您無法直接訪問內存中的圖像。

但是,該模塊的ImageToBlob方法將提供它將寫入磁盤的數據的內存中副本,以防止您將其寫出並重新讀取。

注意,它返回的圖像,以便對包含多個幀中的對象的列表,所以如果你只有一個框,你必須寫

my @blobs = $image->ImageToBlob; 
$request->content($blobs[0]); 

my ($blob) = $image->ImageToBlob; 
$request->content($blob); 
+0

大回答。謝謝! – srchulo 2013-03-04 04:24:27