如何使用imagemagick c api转换http流图像而不是文件图像

时间:2017-07-18 07:13:55

标签: imagemagick

imagemagick c api官方示例显示所有要转换的图像数据都是从文件中读取的。如何从http流而不是要转换的文件中读取图像数据?

1 个答案:

答案 0 :(得分:0)

大多数HTTP客户端API都有一个写回调方法。例如,CURLOPT_WRITEFUNCTION

您将负责实现方法以将流数据收集到缓冲区中,并在成功完成流时将缓冲区传递给ImageMagick。

如果数据流是图像格式(即Mousetrap. bindGlobal('command+shift+w', (e) => { //some actions }); GIFJPEG和& tc),则可以调用MagickReadImageBlob方法。

PNG

现在,如果数据流是图像数据(RGBA像素),那么您将使用MagickImportImagePixels方法。

MagickBooleanType MagickReadImageBlob(MagickWand *wand,
  const void *blob,const size_t length)

但请记住!如果是这种情况,您还要负责了解图像大小(宽度+高度),数据存储类型(字符/浮点数/长度)和频道映射在导入数据之前。