ALAssetRepresentation как NSData для GIF-файлов - PullRequest
2 голосов
/ 26 сентября 2010

Я пытаюсь разрешить пользователям извлекать изображения из своих коллекций фотографий, используя ALAssetsLibrary. Затем пользователи могут загрузить эти изображения. Моя цель - позволить пользователям загружать любые GIF-файлы, которые они могут иметь в своей библиотеке, без потери анимации, которую они могут иметь.

Для файлов PNG и JPEG я могу взять ALAssetRepresentation, использовать - (CGImageRef)fullResolutionImage, чтобы получить CGImageRef, а затем сохранить его в NSData, используя UIImageJPEGRepresentation или UIImagePNGRepresentation.

Однако, поскольку для файлов GIF подобной функции не существует, все, что я могу сделать, это преобразовать GIF в формат JPEG или PNG, но тогда я потеряю анимацию.

Есть ли

  1. способ получить NSData прямо с объекта ALAssetRepresentation или

  2. способ перейти от ALAssetRepresentation -> CGImageRef -> NSData без потери кадров анимации gif?

Заранее спасибо!

1 Ответ

0 голосов
/ 06 февраля 2011

Да, есть довольно простой способ:

Используйте getBytes: fromOffset: length: error: метод ALAssetRepresentation. Это дает вам необработанные данные файла ALAsset, в вашем случае файл GIF.

...