GIF图片使用
来源:互联网 发布:jquery向数组添加元素 编辑:程序博客网 时间:2024/06/14 15:02
.h文件
// UIImageView+GIF.h// DemoGif
//
// Created by yidong on 15/12/5
#import <UIKit/UIKit.h>
@interface UIImageView (GIF)
// 从指定的路径加载GIF并创建UIImageView
+ (UIImageView*)imageViewWithGIFFile:(NSString*)file frame:(CGRect)frame;
@end
.m文件
// UIImageView+GIF.m
// DemoGif
//
// Created by yidong on 15/12/5
#import "UIImageView+GIF.h"
#import <ImageIO/ImageIO.h>
@implementation UIImageView (GIF)
+ (UIImageView*)imageViewWithGIFFile:(NSString*)file frame:(CGRect)frame
{
UIImageView *imageView = [[UIImageView alloc]initWithFrame:frame];
// 加载gif文件数据
NSData *gifData = [NSData dataWithContentsOfFile:file];
// GIF动画图片数组
NSMutableArray *frames = nil;
// 图像源引用
CGImageSourceRef src = CGImageSourceCreateWithData((__bridge CFDataRef)gifData,NULL);
// 动画时长
CGFloat animationTime = 0.f;
if (src) {
// 获取gif图片的帧数
size_t count = CGImageSourceGetCount(src);
// 实例化图片数组
frames = [NSMutableArray arrayWithCapacity:count];
for (size_ti = 0; i < count; i++) {
// 获取指定帧图像
CGImageRef image = CGImageSourceCreateImageAtIndex(src, i, NULL);
// 获取GIF动画时长
NSDictionary *properties = (__bridge NSDictionary*)CGImageSourceCopyPropertiesAtIndex(src, i,NULL);
NSDictionary *frameProperties = [propertiesobjectForKey:(NSString*)kCGImagePropertyGIFDictionary];
NSNumber*delayTime = [frameProperties objectForKey:(NSString*)kCGImagePropertyGIFUnclampedDelayTime];
animationTime += [delayTimefloatValue];
if (image) {
[frames addObject:[UIImage imageWithCGImage:image]];
CGImageRelease(image);
}
}
CFRelease(src);
}
[imageView setImage:[frames objectAtIndex:0]];
[imageView setAnimationImages:frames];
[imageView setAnimationDuration:animationTime];
[imageView startAnimating];
return imageView;
}
@end
直接在控制器里面使用
// ViewController.m
// GIF图片使用
#import "ViewController.h"
#import "UIImageView+GIF.h"
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// 对于gif格式的图片,必须要加@2x
NSString *path = [[NSBundle mainBundle]pathForResource:@"lengtuchongbai.gif@2x" ofType:@"png"];
UIImageView *imageView = [UIImageView imageViewWithGIFFile:path
frame:CGRectMake(60,130, 200, 200)];
[self.view addSubview:imageView];
}
@end
1 0
- GIF图片使用
- 使用Photoshop制作GIF图片
- 使用Movie播放Gif图片
- 使用imageview显示Gif图片
- 使用SDWebImageView加载gif图片
- 使用FFMPEG制作gif图片
- Unity里使用Gif图片
- 如何制作GIF图片 使用Ulead GIF Animator 5
- Android 使用三方库android-gif-drawable 加载Gif图片
- 使用convert制制作gif图片动画
- android中使用imageview显示Gif图片
- android中使用imageview显示Gif图片
- 如何在android上 使用gif图片
- 使用开源项目播放gif图片
- Android 使用Gif图片及其注意点
- 安卓中使用fresco加载Gif图片
- iOS中直接使用Gif图片
- 两个gif图片处理库使用
- linux 4位权限详解
- 学习记录20160125
- 图形处理(三)简单拉普拉斯网格变形-Siggraph 2004
- elasticsearch2.1.1 安装
- VS2008下,编译.asm
- GIF图片使用
- Android开发面试题
- iOS:json格式字符串转字典,字典转json格式字符串
- 图形处理(四)基于梯度场的网格编辑-Siggraph 2004
- js之require.js三
- Java读取excel文件写入txt
- CardView
- iOS 苹果官方Demo合集
- 图形处理(五)基于旋转不变量的网格变形-Siggraph 2007