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

如何使用imagemagick c api转换http流图像而不是文件图像,imagemagick,libcurl,c,Imagemagick,Libcurl,C,imagemagick c api官方示例表明,所有要转换的图像数据都是从文件中读取的。如何从http流中读取图像数据,而不是从要转换的文件中读取图像数据?大多数http客户端API都有写回调方法。例如,我有 您将负责实现一种方法,将流数据收集到缓冲区中,并在成功完成流时将缓冲区传递给ImageMagick 如果数据流是一种图像格式(即GIF,JPEG,PNG,&tc),您将调用该方法 现在,如果数据流是图像数据(RGBA像素),那么您将利用该方法 但是记住!如果是这种情况,您还需要在导入数据之

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

大多数http客户端API都有写回调方法。例如,我有

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

如果数据流是一种图像格式(即
GIF
JPEG
PNG
,&tc),您将调用该方法

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


但是记住!如果是这种情况,您还需要在导入数据之前了解图像大小(宽度+高)、数据存储类型(字符/浮点/长)和通道图(RGBA/BGRA/CMYK/HSL)

您使用的是哪个版本的ImageMagick?我的版本是OSX上的7.0.6-1官方示例使用以下内容:
MagickCoreGenesis(*argv,MagickTrue)到初始magick环境。*argv是图像文件路径。问题是,当我转换http sream数据时,如何初始化环境?
*argv
应该与入口
main
函数中的值相同。需要确保可执行文件是可访问的,并设置客户端名称和路径。与图像文件路径或数据流无关。
MagickBooleanType MagickReadImageBlob(MagickWand *wand,
  const void *blob,const size_t length)
MagickBooleanType MagickImportImagePixels(MagickWand *wand,
  const ssize_t x,const ssize_t y,const size_t columns,
  const size_t rows,const char *map,const StorageType storage,
  const void *pixels)