使用 IOS 计算延迟时间和总动画时间
Posted
技术标签:
【中文标题】使用 IOS 计算延迟时间和总动画时间【英文标题】:Calculating Delay Time And Total Animation Time using IOS 【发布时间】:2013-06-12 06:57:03 【问题描述】:我正在从一组图像创建动画并将它们转换为 gif 文件。我只有用户提供的 FPS,例如 30fps,如何计算使用 kCGImagePropertyGIFDelayTime 和 imageview 中使用的总渲染时间创建 gif 图像的延迟时间。 AnimationDuration 我的代码到现在如下。对于动画图像:
imageview=[[UIImageView alloc]initWithFrame:frame];
imageview.animationImages=arrImages;
imageview.contentMode=UIViewContentModeScaleAspectFit;
prog=float prog=((1/slide.value)*totalimgcount);
imageview.animationDuration = prog;
imageview.animationRepeatCount = 0;
[imageview startAnimating];
用于创建 Gif 文件
imgData = [[NSMutableData data] retain];
CGImageDestinationRef dest=CGImageDestinationCreateWithData((CFMutableDataRef) imgData, kUTTypeGIF,
[arrImages count],
NULL);
NSDictionary *frameProperties = [NSDictionary dictionaryWithObject:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:1/slide.value] forKey:(NSString *)kCGImagePropertyGIFDelayTime]
forKey:(NSString *)kCGImagePropertyGIFDictionary];
NSDictionary *gifProperties = [NSDictionary dictionaryWithObject:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:0] forKey:(NSString *)kCGImagePropertyGIFLoopCount]
forKey:(NSString *)kCGImagePropertyGIFDictionary];
for (UIImage *img in arrImages)
CGImageDestinationAddImage(dest, img.CGImage, (CFDictionaryRef)frameProperties);
CGImageDestinationSetProperties(dest, (CFDictionaryRef)gifProperties);
CGImageDestinationFinalize(dest);
CFRelease(dest);
请帮忙,在iphone中渲染的动画非常快,创建的gif非常慢......
【问题讨论】:
【参考方案1】:图像查看持续时间以秒为单位,而 gif 延迟以百分之几秒为单位,因此您不能使用完全相同的计算并在两种情况下获得完全相同的结果。
【讨论】:
但是任何有一些差异的算法都可以使用,但是在我的算法中,另一端的一切都运行得非常慢或非常快...... 根据您当前的代码,我预计速度会相差 100 倍。试试 [NSNumber numberWithInt:100/slide.value]以上是关于使用 IOS 计算延迟时间和总动画时间的主要内容,如果未能解决你的问题,请参考以下文章