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