iOS-GIF分解

作者: 精神病患者link常 | 来源:发表于2017-03-21 11:33 被阅读0次

叮叮咚咚铛铛,葫芦娃


/**
 分解gif

 @param gifPath gif路径
 @return 返回gif所有的图片地址数组
 */
- (NSMutableArray *)decomposeGIF:(NSString *)gifPath {
    
    //图片保存路径
    NSString *imagepPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    
    //用于保存所有图片的路径
    NSMutableArray *imgPaths=[NSMutableArray array];
    
    //1.gif转换成data
    NSData *gifData=[NSData dataWithContentsOfFile:gifPath];
    
    //2.通过data获取image的数据源
    CGImageSourceRef source =CGImageSourceCreateWithData((CFDataRef)gifData, NULL);
    
    //3.获取gif帧数
    size_t count=CGImageSourceGetCount(source);
    
    for (int i=0; i<count; i++) {
        
        //4.获取单帧图片
        CGImageRef imageRef=CGImageSourceCreateImageAtIndex(source, i, NULL);
        
        //5.根据CGImageRef获取图片
        //[UIScreen mainScreen].scale    是计算屏幕分辨率的
        //UIImageOrientationUp           指定新的图像的绘制方向
        UIImage *image=[UIImage imageWithCGImage:imageRef scale:[UIScreen mainScreen].scale orientation:UIImageOrientationUp];
        
        //6.释放CGImageRef对象
        CGImageRelease(imageRef);
        
        
        /************************** 保存图片 *************************/
        
        //图片转data
        NSData *imagedata = UIImagePNGRepresentation(image);
        
        //图片保存路径
        NSString *imgpath=[imagepPath stringByAppendingString:[NSString stringWithFormat:@"/%d.png",i]];
        
        //将图片写入
        [imagedata writeToFile:imgpath atomically:YES];
        
        //保存图片路径
        [imgPaths addObject:imgpath];
    }
 
    //释放source
    CFRelease(source);
    
    return imgPaths;
}

demo地址:https://github.com/chjwrr/gif_decomposeAndCompose

相关文章

  • iOS-GIF分解

    叮叮咚咚铛铛,葫芦娃 demo地址:https://github.com/chjwrr/gif_decompose...

  • iOS-Gif播放

    图片分为静态和动态两种,图片的格式有很多种,在开发中比较常见的是.png和.jpg的静态图片,但有的时候在App中...

  • iOS-GIF图播放

    封装播放GIF图片的Imageview分类GIF图片来源为本地或网络导入系统库: import ImageIO 加...

  • 分解分解

    工作上究竟如何能够做的更好呢?在时间的安排上如何更加高效呢?我始终很难做到,做不到稻盛先生的,付出不亚于任何人的努...

  • 并行算法设计基础

    计算分解 数据分解 搜索分解 递归分解 混合分解方法 针对要处理的问题灵活运动数据分解、搜索分解和递归分解 任务映...

  • 学习笔记DL006:特征分解,奇异值分解

    特征分解。 整数分解质因素。 特征分解(eigendecomposition),使用最广,矩阵分解一组特征向量、特...

  • 分解

    有时候 你会觉得自己 就是一面旗帜 被风吹着 猎猎作响 然而 忽然间 就碎裂成 一缕缕 布条

  • 分解

    我是莱安娜,我仿佛有用不完的的精力,我可以连续几天不休息也不感觉疲惫,可以几天不进食而不感到饥饿。我不知道什么时候...

  • 分解

    闭上眼睛,世界一片黑暗, 黑暗又混沌。 闭上眼睛的时候 世界与我的身体彼此分开, 世界在变暗,...

  • 分解

    献给自己一双犀利的眼睛 大事有规划,但小事未分解,执行的时候就不知道做什么。 2016/8/30 0:42 改变自...

网友评论

    本文标题:iOS-GIF分解

    本文链接:https://www.haomeiwen.com/subject/skownttx.html