Захватывать скриншот в iphone? - PullRequest
0 голосов
/ 30 января 2012

Я хочу сделать снимок экрана программно. Так что я пишу код для него, как,

CGContextRef context = [self createBitmapContextOfSize:self.frame.size];

//not sure why this is necessary...image renders upside-down and mirrored
CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, self.frame.size.height);
CGContextConcatCTM(context, flipVertical);

[self.layer renderInContext:context];

CGImageRef cgImage = CGBitmapContextCreateImage(context);
UIImage* background = [UIImage imageWithCGImage: cgImage];
CGImageRelease(cgImage);


self.currentScreen = background;

Здесь весь код находится в пользовательском UIView UIViewController. Теперь, когда я играю анимацию последовательности UIImageView png в UIView, я не получил обновленных изменений в UIImageView, который является подпредставлением пользовательского UIView, почему? Я получил только результат UIImageView с первым UIImage.

По сути, мне нужно создать видео о моей игре, как в приложении для разговора.

Ответы [ 3 ]

0 голосов
/ 30 января 2012

вам, вероятно, стоит взглянуть на AVFoundation и, в частности, AVAssetWriter как на способ создания видео вашего экранного контента.

0 голосов
/ 30 января 2012

Сделайте снимок экрана вашего ImageView с чем-то вроде этого:

[[[yourImageView layer] presentationLayer] renderInContext:context];

Используйте NSTimer для вызова этой функции getScreenshot.

Надеюсь, это поможет

0 голосов
/ 30 января 2012

Следующий код используется для захвата изображения в iPhone для использования следующего кода.

 CGRect rect = CGRectMake(0.0, 0.0,self.view.frame.size.width,self.view.frame.size.height-44);
    NSValue *rectObj = [NSValue valueWithCGRect:rect];

    CGRect rectRestored = [rectObj CGRectValue];

    UIGraphicsBeginImageContext(CGSizeMake(rectRestored.size.width, rectRestored.size.height-44));
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

Также сохраните изображение в галерее.

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