欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

gif图片

程序员文章站 2022-03-24 19:15:04
...

关键是不能直接使用UIImage,而是转成NSData来处理

一,iOS之加载Gif图片

  1. 其实,在SDWebImage这个库里有一个UIImage+GIF的类别,里面为UIImage扩展了三个方法:
@interface UIImage (GIF)
+ (IImage *)sd_animatedGIFNamed:(NSString *)name;
+ (UIImage *)sd_animatedGIFWithData:(NSData *)data;
- (UIImage *)sd_animatedImageByScalingAndCroppingToSize:(CGSize)size;
@end



第二个方法试一试效果:

NSString *path = [[NSBundle mainBundle] pathForResource:@"gifTest" ofType:@"gif"];
    NSData *data = [NSData dataWithContentsOfFile:path];
    UIImage *image = [UIImage sd_animatedGIFWithData:data];
    gifImageView.image = image;

这个方法可以试一试,不过要先拿到图片,然后再转成Data貌似有点麻烦,不过貌似SDWebImage帮我们做优化,具体如下:

加载网络的Gif文件就简单多了。最简单的方法,我们只需要使用SDWebImage 的 sd_setImageWithURL:这个方法传入Gif文件是url地址即可。
纠其原因:稍微仔细看了SDWebImage内部实现就可以清楚,大概是以下几个步骤:

1、SDWebImage根据url将Gif文件下载下来,格式为一个NSData
2、如果判断是Gif格式,则会调用** sd_animatedGIFWithData:** 将Data转换成我们需要的Gif格式
3、通过上面的方法二即可显示出Gif图片

UIImage *image = [UIImage sd_animatedGIFWithData:data];
gifImageView.image = image;

不过这里涉及一个问题就是,如何上传GIF图片到服务器了,顺便吐槽一句,这篇博客居然播放本地GIF图片比网络GIF图片要麻烦!


二,iOS开发-gif图片上传

这篇上传,和加载显示都有了,加载显示这块,貌似也是用SDWebImage,上一篇和这一篇都提到了用sd_setImageWithURL:placeholderImage:这个方法,但是这个方法不能直接播放本地的GIF


三,iOS开发--GIF图片的选取,压缩,上传

//这篇的思路其实是挺清晰的,值得参考


四,iOS Gif图片展示N种方式(原生+第三方)


IOS 播放动态Gif图片

GIF 分为静态GIF和动画GIF两种,扩展名为.gif。
是一种压缩位图格式。
支持透明背景图像,适用于多种操作系统,“体型”很小。
网上很多小动画都是GIF格式。其实GIF是将多幅图像保存为一个图像文件,从而形成动画,最常见的就是通过一帧帧的动画串联起来的搞笑gif图,所以归根到底GIF仍然是图片文件格式。

附:

如何制作gif文件?需要什么工具软件?