如何将GIF图片转换为NSData for iOS?

问题描述 投票:1回答:3

在我的iOS应用程序中,我想在我的tableViewCell中显示一个Gif图像。通过SDWebImage下载此Gif图像,并使用FLAnimatedImageView来显示此图像。

但现在我有一个问题,SDWebImage返回图像,但FLAnimatedImageView想要一个NSData

如何将gif转换成NSData图像?

原谅我可怜的英语。

[[SDWebImageManager sharedManager] downloadImageWithURL:url options:0 progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
            if (image.images.count > 0)//gif
            {
                // how to get the data
                FLAnimatedImage *animatedImage = [FLAnimatedImage animatedImageWithGIFData:data];
                _chatGIFImage.animatedImage = animatedImage1;
            }

        }];
ios nsdata sdwebimage
3个回答
1
投票

如果您有图像的URL,则可以直接使用以下内容将其转换为NSData

NSData *data = [NSData dataWithContentsOfURL: imageURL];

0
投票

你可以简单地使用

// UIImageJPEGRepresentation(<#UIImage * _Nonnull image#>, <#CGFloat compressionQuality#>)
NSData *data = UIImageJPEGRepresentation(image, 1.0);

压缩质量可以在0.0(高压缩,低质量)和1.0(低压缩,高质量)之间


0
投票

您可以执行以下操作:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    NSError* error = nil;
    NSData* ImageData = [NSData dataWithContentsOfURL:yourIMGUrl options:NSDataReadingUncached error:&error];
    if (error) {

        NSLog(@"%@", [error localizedDescription]);

    } else {

        NSLog(@"successfull.");

        dispatch_sync(dispatch_get_main_queue(), ^{

            FLAnimatedImage *animatedImage = [FLAnimatedImage animatedImageWithGIFData:ImageData];
            _chatGIFImage.animatedImage = animatedImage1;

        });
    }


});
© www.soinside.com 2019 - 2024. All rights reserved.