2010-07-15 4 views
6

Ich benutze den iPhone-Port von ImageMagick. Ich versuche, die Frames eines animierten Gifs zu durchlaufen und jeden Frame in ein UII-Bild zu verwandeln. Ich weiß, dass ich ein UIImage mit NSData initiieren kann, das ich mit einem Const void initiieren kann. Wie bekomme ich den Puffer und die Länge des Bildes?Wie bekomme ich c-Puffer von ImageMagick Image

Hier ist der Code:

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); 
    } 

Antwort

4

ich die Lösung jetzt haben:

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]; 
Verwandte Themen