Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从ImageMagick图像中获取c缓冲区_C++_Objective C_Imagemagick - Fatal编程技术网

C++ 如何从ImageMagick图像中获取c缓冲区

C++ 如何从ImageMagick图像中获取c缓冲区,c++,objective-c,imagemagick,C++,Objective C,Imagemagick,我正在使用ImageMagick的iPhone端口。我正在尝试循环动画gif的帧,并将每个帧转换为UIImage。我知道我可以使用NSData初始化UIImage,而我可以使用const void*初始化UIImage。那么如何获得图像的缓冲区和长度呢 代码如下: MagickReadImage(wand, filename); while(MagickHasNextImage(wand)) { Image *myImage = GetImag

我正在使用ImageMagick的iPhone端口。我正在尝试循环动画gif的帧,并将每个帧转换为UIImage。我知道我可以使用NSData初始化UIImage,而我可以使用const void*初始化UIImage。那么如何获得图像的缓冲区和长度呢

代码如下:

    MagickReadImage(wand, filename);

        while(MagickHasNextImage(wand)) {
             Image *myImage = GetImageFromMagickWand(wand);
             //HELP ME PLEASE
             const void *myBuff =myImage->blob;  //guessing this is the right way to get the buffer?
             int myLength = ????? //no idea how to get the length
             NSData *myData = [[NSData alloc] initWithBytes:myBuff length:myLength];
             UIImage myImage = [[UIImage alloc] initWithData:myData]];
             MagickNextImage(wand);
    }

我现在有了解决办法:

    size_t my_size;
    unsigned char * my_image = MagickGetImageBlob(wand, &my_size);
    NSData * data = [[NSData alloc] initWithBytes:my_image length:my_size];
    free(my_image);

    UIImage * image = [[UIImage alloc] initWithData:data];