gif图片的合成

//gif的合成
-(void)makeGif
{
    //获取图片
    NSMutableArray * imgArray =[NSMutableArray new];
    for (int m=0; m<11; m++) {
        NSString * savePath =[NSHomeDirectory() stringByAppendingFormat:@"/Documents/%d.png",m];
        UIImage * img =[UIImage imageWithData:[NSData dataWithContentsOfFile:savePath]];
        [imgArray addObject:img];
    }
    //创建文件夹
    NSFileManager * manager =[NSFileManager defaultManager];
    NSString * text =[NSHomeDirectory() stringByAppendingString:@"/gif"];
    [manager createDirectoryAtPath:text withIntermediateDirectories:YES attributes:NULL error:nil];
    NSString * gifpath =[text stringByAppendingString:@"/ooo.gif"];
    
    //配置gif属性
    CGImageDestinationRef destion;
    CFURLRef url =CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)gifpath, kCFURLPOSIXPathStyle, false);
    destion =CGImageDestinationCreateWithURL(url, kUTTypeGIF, 11, NULL);
    
    NSDictionary * frameDic =[NSDictionary dictionaryWithObject:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithFloat:0.3],kCGImagePropertyGIFDelayTime, nil] forKey:(NSString *)kCGImagePropertyGIFDelayTime];
    
    NSMutableDictionary * gifParmdict =[NSMutableDictionary dictionaryWithCapacity:2];
    [gifParmdict setObject:[NSNumber numberWithBool:YES] forKey:(NSString *)kCGImagePropertyGIFHasGlobalColorMap];
    [gifParmdict setObject:(NSString *)kCGImagePropertyColorModelRGB forKey:(NSString *)kCGImagePropertyColorModelRGB];
    [gifParmdict setObject:[NSNumber numberWithInt:8] forKey:(NSString *)kCGImagePropertyDepth];
    [gifParmdict setObject:[NSNumber numberWithInt:0] forKey:(NSString *)kCGImagePropertyGIFLoopCount];
    
    NSDictionary * gifProperty =[NSDictionary dictionaryWithObject:gifParmdict forKey:(NSString *)kCGImagePropertyGIFDictionary];
    //合成gif
    for (int m=0; m<11; m++) {
        UIImage * dimage =[imgArray objectAtIndex:m];
        CGImageDestinationAddImage(destion, dimage.CGImage, (__bridge CFDictionaryRef)frameDic);
    }
    CGImageDestinationSetProperties(destion, (__bridge CFDictionaryRef)gifProperty);
    CGImageDestinationFinalize(destion);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值