2013-03-03 57 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