Как получить скриншот устройства iphone при запуске анимации изображения в основном потоке? - PullRequest
3 голосов
/ 08 февраля 2012

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

Спасибо, Кейур Праджапати

Ответы [ 3 ]

2 голосов
/ 17 апреля 2012

Для снятия скриншотов во время анимации изображения

использовать

[self.view.layer.presentationLayer renderInContext:UIGraphicsGetCurrentContext()];

вместо

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

при запуске анимации будут сниматься скриншоты

iOS использует Core Animation в качестве системы рендеринга. Каждый UIView поддерживается CALayer. Каждое видимое дерево слоев подкреплено деревом представления. Дерево слоев содержит значения объектной модели для каждого слоя, то есть значения, которые вы устанавливаете при назначении значения свойству слоя (A и B). Дерево представления содержит значения, которые в настоящее время представляются пользователю в процессе анимации (интерполированные значения между A и B).

1 голос
/ 08 февраля 2012

Создайте другой поток, где вы можете сделать это:

    //Create rect portion for image if full screen then 320X480
    CGRect contextRect  = CGRectMake(0, 0, 320, 480);

  // this is whate you need
    UIGraphicsBeginImageContext(contextRect.size);  

    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

  UIImage* viewImage = UIGraphicsGetImageFromCurrentImageContext();

  UIGraphicsEndImageContext();

viewImage - это изображение, которое вам нужно.

Вы можетенапишите этот код в функции, которую можно назвать своевременной базой, например, за 5 секунд или в соответствии с вашими требованиями.

Надеюсь, это то, что вам нужно.

1 голос
/ 08 февраля 2012

Если вы делаете это в CoreAnimation, вы можете отобразить содержимое слоя в растровое изображение, используя -renderInContext:. Взгляните на Matt Longs Tutorial . Это для Objective-C на Mac, но его легко конвертировать для использования на iPhone.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...