2013-06-12 3 views
0

Я создаю анимацию из множества изображений и преобразую их в файл gif. Я просто получил FPS от пользователя, например 30fps, как рассчитать время задержки для создания gif-изображения, используя kCGImagePropertyGIFDelayTime и общее время рендеринга, которое используется в представлении изображения. AnimationDuration мой код до сих пор выглядит следующим образом. Для Анимационные изображения:Расчет времени задержки и всего времени анимации с использованием IOS

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, что создается очень медленно ......

ответ

0

Длительность просмотра изображения измеряется в секундах, тогда как задержка gif измеряется в сотых долях секунды, поэтому вы не можете использовать точно такой же расчет и получить точно такой же результат в обеих ситуациях.

+0

, но любой алгоритм с некоторой разницей даже пойдет, но здесь, в моем алгоритме, все работает очень медленно или очень быстро в другом конце .... – Rahul

+0

Основываясь на вашем текущем коде, я бы ожидал, что скорости будут в 100 раз отличаться. Попробуйте [NSNumber numberWithInt: 100/slide.value] – Wain