我想以编程方式截取屏幕截图。所以我为它编写代码,
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;
这里所有代码都在UIViewController的自定义UIView中。现在当我在UIView上播放UIImageView png序列动画时,我没有在UIImageView中获得更新,这是自定义UIView的子视图,为什么?我得到的结果只有第一个UIImage的UIImageView。
基本上我需要创建一个像汤姆应用程序一样的游戏视频。
答案 0 :(得分:0)
以下代码用于将图像捕获到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);
还将图像存储到图库中。
答案 1 :(得分:0)
你应该看看AVFoundation,特别是AVAssetWriter,作为制作屏幕内容视频的一种方式。
答案 2 :(得分:0)
使用以下内容获取ImageView的屏幕截图:
[[[yourImageView layer] presentationLayer] renderInContext:context];
使用NSTimer调用getScreenshot函数。
希望这有帮助