3

Image::Magick用来修改我的图像。然后我使用HTTP::Request将图像内容发送到 API。

HTTP::Request有一个content方法可以让你设置请求的内容,但显然这需要你在内存中有内容。

我知道我可以通过打开一个文件并读取它来将图像的内容读入一个变量。但是,由于Image::Magick内存中已经有图像的内容,有什么方法可以通过我的Image::Magick对象获取它?谢谢!

4

1 回答 1

5

Image::Magick将图像以自定义格式保存在内存中,以使其更简单有效地操作。在将数据写入文件之前,它必须将数据压缩为 JPEG、PNG 或您要求的任何格式,因此您不能只访问内存中的图像。

但是,该模块的ImageToBlob方法将提供它已写入磁盘的数据的内存副本,以节省您将其写出并再次读取它的时间。

请注意,它返回一个图像列表以允许包含多个帧的对象,因此如果您只有一个帧,则必须编写

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

或者

my ($blob) = $image->ImageToBlob;
$request->content($blob);
于 2013-03-03T23:55:42.170 回答