У меня есть анимация цикла, состоящая из 120 кадров, разрешение 512x512, сохраненная как 32-битные PNG-файлы. Я хочу воспроизвести эту последовательность в UIView внутри моего приложения. Может ли кто-нибудь дать мне несколько указаний относительно того, как я могу это сделать, надеюсь, я смогу это сделать, используя стандартный API (который я бы предпочел). Я мог бы использовать Cocos2D, если нужно, или даже OpenGL (но я совершенно новичок в OpenGL на этом этапе).Воспроизведение последовательности циклов изображений в UIView
ответ
Вы можете попробовать это:
// Init an UIImageView
UIImageView *imageView = [[UIImageView alloc] initWithFrame:/*Some frame*/];
// Init an array with UIImage objects
NSArray *array = [NSArray arrayWithObjects: [UIImage imageNamed:@"image1.png"], [UIImage imageNamed:@"image2.png"], .. ,nil];
// Set the UIImage's animationImages property
imageView.animationImages = array;
// Set the time interval
imageView.animationDuration = /* Number of images x 1/30 gets you 30FPS */;
// Set repeat count
imageView.animationRepeatCount = 0; /* 0 means infinite */
// Start animating
[imageView startAnimating];
// Add as subview
[self.view addSubview:imageView];
Это самый простой подход, но я ничего не могу о производительности сказать, так как я не пробовал. Я думаю, это должно быть хорошо, хотя с изображениями, которые у вас есть.
Я думаю, что у вас не хватит памяти, пытаясь создать массив изображений. – picciano
Просто из любопытства я сделал небольшой проект. Я использовал 120 PNG каждый размером 512x512 пикселей и размером около 790 КБ, поэтому в целом 95 МБ. Потребовалось некоторое время, чтобы загрузить, но потом все прошло отлично. Пробовал это на 4.3 Simulator, 5.0 Simulator и на iPhone 4S. Симуляторы даже не отображали предупреждения памяти. – iska
Тестирование на (например) относительно неизмененном 4S не сравнивается с раздутым 4; у некоторых моих клиентов есть проблемы с памятью, чем когда-либо. Прежде чем приступать к такому решению, я рекомендую попробовать это на вашем самом низком целевом устройстве; 3G-телефоны и 2G-касания, например, имеют только 128 МБ ОЗУ, а ~ 95 МБ много, чтобы потреблять даже для 256 МБ в новых устройствах (3GS-телефон, 4G сенсорный). – AndrewS
Несжатый, это около 90 МБ изображений, и это может быть так, как вы смотрите, если они распакованы в формат UIImage. Из-за длины анимации и размера изображений я настоятельно рекомендую хранить их в сжатом формате фильма. Взгляните на ссылку для рамки MediaPlayer
; вы можете удалить элементы управления воспроизведением, вставить MPMoviePlayerController
в свою собственную иерархию представлений и установить воспроизведение в цикл. Обратите внимание, что 640x480 является верхним поддерживаемым пределом для H.264, поэтому вам может понадобиться масштабировать видео в любом случае.
Обратите внимание на вопросы, связанные с циклом видео, как указано в вопросе здесь Smooth video looping in iOS.
Правда, но если он собирается преодолеть трудности с конвертированием в фильм, внедряя «MPMoviePlayer» и, возможно, масштабируя фильм, он может сначала попытаться масштабировать изображения до нужного размера и/или сжать их , напишите семь строк кода и посмотрите, что произойдет;) – iska
@iska: согласен, стоит проверить простое решение; см. мою заметку о вашем ответе. – AndrewS
- 1. Воспроизведение последовательности изображений на холсте
- 2. Воспроизведение последовательности изображений с использованием Qt QMainWindow
- 3. Воспроизведение нескольких анимаций в последовательности
- 4. Длины циклов в случайной последовательности
- 5. Воспроизведение мультимедийного контента в последовательности
- 6. Воспроизведение видео в UIView (subview)
- 7. Как вы «ping pong» анимация последовательности изображений UIView
- 8. Воспроизведение изображений из массива изображений
- 9. Преобразование видео в последовательности изображений MATLAB
- 10. Воспроизведение изображений Python PIL
- 11. «Воспроизведение» список изображений в качелях
- 12. Воспроизведение последовательностей изображений в MATLAB
- 13. Воспроизведение нескольких аудиофайлов в последовательности как один
- 14. Воспроизведение аудиофайла в последовательности usign swift
- 15. Воспроизведение звука из звукового пула в последовательности
- 16. Воспроизведение последовательности файлов PNG в cocos2d iphone
- 17. AVAudioPlayer - воспроизведение нескольких аудиофайлов в последовательности
- 18. Воспроизведение звуков в последовательности с SimpleAudioEngine
- 19. Воспроизведение последовательности заметок MIDI в swift
- 20. Воспроизведение нескольких дорожек, сохраненных локально в последовательности
- 21. Воспроизведение последовательности звуковых файлов в фоновом режиме
- 22. Воспроизведение звуков в совершенной последовательности на iPhone
- 23. Изменение последовательности фоновых изображений
- 24. Видео к последовательности изображений
- 25. Начальное изображение последовательности изображений
- 26. Обработка последовательности изображений в CUDA
- 27. Анимационные последовательности изображений в Java
- 28. Загрузка изображений асинхронно в последовательности
- 29. Уменьшить кадры последовательности изображений
- 30. Swift: Анимировать слои в последовательности из UIView
Преобразуйте его в видео, а затем воспроизведите это видео. –