как получить количество кадров в секунду из gif-файла?
Я пытаюсь получить количество кадров в секунду из файла gif , Я конвертирую gif-файл в NSData, а затем из этого NSData я беру массив кадров, используя этот код: - (NSMutableArray *)getGifFrames: (NSData *)data{
NSMutableArray *frames = nil;
CGImageSourceRef src = CGImageSourceCreateWithData((CFDataRef)data, NULL);
if (src) {
size_t l = CGImageSourceGetCount(src);
frames = [NSMutableArray arrayWithCapacity:l];
for (size_t i = 0; i < l; i++) {
CGImageRef img = CGImageSourceCreateImageAtIndex(src, i, NULL);
if (img) {
[frames addObject:[UIImage imageWithCGImage:img]];
CGImageRelease(img);
}
}
CFRelease(src);
}
return frames;
}
есть ли в любом случае я могу получить FPS gif? Спасибо
2 ответов
файл GIF не содержит значения FPS, а каждый кадр содержит длительность.
каждый кадр содержит заголовок.
шестнадцатеричный байт номер 324 содержит длительность кадра в 100ths секунды, например 09 00 будет 0.09 секунд.
EDIT: ссылка http://en.wikipedia.org/wiki/Graphics_Interchange_Format#Animated_GIF
взгляните на этот код, который я нашел-класс AnimatedGif содержит метод "GIFReadExtensions", который, похоже, делает именно то, что вы хотите: