imagemagick c api官方示例显示所有要转换的图像数据都是从文件中读取的。如何从http流而不是要转换的文件中读取图像数据?
答案 0 :(得分:0)
大多数HTTP客户端API都有一个写回调方法。例如,libcurl有CURLOPT_WRITEFUNCTION
。
您将负责实现c方法以将流数据收集到缓冲区中,并在成功完成流时将缓冲区传递给ImageMagick。
如果数据流是图像格式(即Mousetrap. bindGlobal('command+shift+w', (e) => {
//some actions
});
,GIF
,JPEG
和& tc),则可以调用MagickReadImageBlob
方法。
PNG
现在,如果数据流是图像数据(RGBA像素),那么您将使用MagickImportImagePixels
方法。
MagickBooleanType MagickReadImageBlob(MagickWand *wand,
const void *blob,const size_t length)
但请记住!如果是这种情况,您还要负责了解图像大小(宽度+高度),数据存储类型(字符/浮点数/长度)和频道映射