Convert a UIImage into NSData BUT stay as a GIF file

前端 未结 3 755
既然无缘
既然无缘 2021-01-01 05:51

I have a UIImage which is a GIF file.

I need to make it make it into an NSData object. But it needs to stay a GIF so I can\'t use UIImageJPEGRepresentation.

相关标签:
3条回答
  • 2021-01-01 06:15

    Once it's a UIImage, it's not a gif anymore. It's already been interpreted into a core graphics image object, wrapped in the UIKit trimmings of UIImage. You DON'T have a UIImage that "is a GIF". It may have been once, but that time has passed.

    If you're downloading this thing (which I assume by your comment "I don't have access to the file"), then you should download it as data, and keep it as data, and if you make a UIImage based on that data, you maybe need to keep the data around.

    (This is all a guess, though, because you're dribbling out details about your question drip by drip. If you could say in a bigger breath what you want to accomplish, we can probably help better.)

    0 讨论(0)
  • 2021-01-01 06:16

    I faced the same issue you mention and here is the code i used to save the animated gif to Photos without losing animation:

    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
    
    NSData *data = [NSData dataWithContentsOfURL:[self getCurrentGIFURL]];
    
    [library writeImageDataToSavedPhotosAlbum:data metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {}
    

    Basically, if you save the gif from URL or from file directly as an NSData object instead of making it a UIImage, it will keep the animation.

    0 讨论(0)
  • 2021-01-01 06:31

    You could load it into a NSData* directly if you know the filepath. Such as:

    NSData *gifData = [NSData dataWithContentsOfFile:@"myCoolPic.gif"];
    

    NSData dataWithContentsOfFile docs

    0 讨论(0)
提交回复
热议问题