Tag: 截图

如何从背景应用程序运行iPhone的屏幕截图?

我需要做一个应用程序,可以继续运行,每秒从背景截图或video录制的屏幕。 由于iOS应用程序在沙箱中运行,因此可以做到这一点。 注意:这个应用程序是为了内部的目的。 不会在app store发布。

如何检测用户是否在iOS中使用家庭电源进行屏幕截图?

我试图检测用户是否截图,以警告他们这是一个版权的video。 我试过达尔文通知,但它没有工作… NSMetadataQuery可能是一个解决scheme,但我们希望应用程序也运行在iOS4上。 有人可以帮我吗? 感谢:P!

使用Swift以编程方式闪烁屏幕(在“屏幕截图”上)

为了从这里转换Objective C示例: 如何以编程方式刷屏? 我写了下面的代码: func blinkScreen(){ var wnd = UIApplication.sharedApplication().keyWindow; var v = UIView(frame: CGRectMake(0, 0, wnd!.frame.size.width, wnd!.frame.size.height)) wnd!.addSubview(v); v.backgroundColor = UIColor.whiteColor() UIView.beginAnimations(nil, context: nil) UIView.setAnimationDuration(1.0) v.alpha = 0.0; UIView.commitAnimations(); } 但我不知道应该在哪里添加UIView v移除代码(在animation结束时执行的某些事件,但是如何执行?)。 另外 – 我的转换是否正确?

glReadPixels只保存1/4屏幕大小的快照

我正在为客户端开发增强现实应用程序。 OpenGL和EAGL部分已经在Unity 3D中完成,并在我的应用程序中实现了View。 我现在需要的是一个button,捕捉OpenGL内容的屏幕截图,这是最后面的视图。 我试图自己写,但是当我点击一个button与分配的IBAction,它只保存了1/4的屏幕(左下angular) – 虽然它确实保存到相机胶卷。 所以基本上,我怎样才能保存整个screenize,而不是只有四分之一? 这里是我的代码的方法: -(IBAction)tagBillede:(id)sender { UIImage *outputImage = nil; CGRect s = CGRectMake(0, 0, 320, 480); uint8_t *buffer = (uint8_t *) malloc(s.size.width * s.size.height * 4); if (!buffer) goto error; glReadPixels(0, 0, s.size.width, s.size.height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); CGDataProviderRef ref = CGDataProviderCreateWithData(NULL, buffer, s.size.width * s.size.height * 4, NULL); if […]

_UIReplicantView和snapshotViewAfterScreen更新如何获取其内容?

-renderInContext:自从它出现以来就被广泛的使用,但是不可能渲染OpenGL图层,AVPreviewLayer(可能是因为是一种OpenGL图层),我仍然无法正确渲染CATiledLayer。 在iOS7中引入了2个新API来获取屏幕截图,其中一个是-snapshotViewAfterScreenUpdates:返回一个特定的视图( _UIReplicantView )和-drawViewHierarchyInRect:afterScreenUpdates:最后一个是-renderInContext的一种replace,不幸的是它似乎有相同的限制。 -snapshotViewAfterScreenUpdates:它似乎也适用于OpenGL和AVPreviewLayer,不幸的是,如果你想做特定的animation或者使用内容作为背景(比如一个uibutton),那么这样的视图并不是很有用。 我试图从返回的视图中获取内容,但是我仍然没有运气。 有人试过了吗?

UIBezierPath:不正确的视图截图检索

我正在采取以下方式截图。 – (UIImage*)screenshot { UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow]; CGRect rect = [keyWindow bounds]; UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); [keyWindow.layer renderInContext:context]; UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return img; } 在UIView我使用UIBezierPath绘制path。 我得到的屏幕截图是不正确的 任何想法为什么上半部分是空白? 在UIView所有绘图显示正确。 更新:当我释放我的画笔并获得正确的屏幕截图时,使用UIBezierPath绘制长path时,会发生这种情况。

截图UIImageView我只需要图像IOS

在我的iOS应用程序,我正在采取UIImageView的屏幕截图。 如附件照片所示,非常完美。 但在这里,我已经采取UIImageView content mode 方面适合 。 我已经使用这个代码。 func captureView() -> UIImage { UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, false,UIScreen.mainScreen().scale)//add this line let context: CGContextRef = UIGraphicsGetCurrentContext()! self.backView.layer.renderInContext(context) let img: UIImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return img } 我只需要Image的快照,而不是ImageView。 帮我解决这个问题。

以编程方式创build视网膜截图导致非视网膜图像

我试图以编程方式采取视网膜屏幕截图,我已经尝试了在网上find的每一种方法,但我无法得到截图视网膜。 我了解以下私有API: UIGetScreenImage(); 不能用作苹果会拒绝你的应用程序。 但是,这种方法返回正是我所需要的(屏幕截图的640×960)。 我已经在我的iPhone 4以及视网膜硬件上的iPhone 4模拟器上尝试了这种方法,但生成的图像始终是320×480。 -(UIImage *)captureView { AppDelegate *appdelegate = [[UIApplication sharedApplication]delegate]; if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) UIGraphicsBeginImageContextWithOptions(appdelegate.window.bounds.size, NO, 0.0); else UIGraphicsBeginImageContext(appdelegate.window.bounds.size); [appdelegate.window.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); NSLog(@"SIZE: %@", NSStringFromCGSize(image.size)); NSLog(@"scale: %f", [UIScreen mainScreen].scale); return image; } 我也尝试过苹果推荐的方式: – (UIImage*)screenshot { // Create a graphics context with the target size […]

AVPlayerLayer获取图像到UIImageView缓冲区

我尝试[playerLayer renderInContext:UIGraphicsGetCurrentContext()]; 它会显示黑色的背景。 所以我得到当前播放器项目作为连续的重击图像它不像video播放只是静止图像不断stream动。 所以还有其他的select吗?

使用completionSelector和completionTarget与UIImageWriteToSavedPhotosAlbum

我试图找出一个办法让我的iOS应用程序保存到相机胶卷的屏幕截图,然后popup警告告诉用户屏幕截图已成功保存。 我认为这样做的唯一方法就是使用某种forms的if / else循环(正如您在下面的伪代码注释中看到的那样),但是我想不出任何语法可以使用UIKit的UIImageWriteToSavedPhotosAlbum函数。 我遇到了一些build议,说在Apple的开发网站上使用completionSelector和completionTarget,但我真的不明白如何使用它们,或者我的代码中completionSelector和completionTarget应该使用什么特定的字典。 我对Swift比较陌生。 有人可以解释他们如何工作,以及如何find在我的代码中使用它们的语法? func screenshotMethod() { UIGraphicsBeginImageContextWithOptions(HighchartsView.scrollView.contentSize, false, 0); view.layer.renderInContext(UIGraphicsGetCurrentContext()) let image = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil) //if saved to Camera Roll // { // confirmScreenshot() // } // //else // { // exit code/stop // } } func confirmScreenshot() { let alertController = UIAlertController(title: "Success", message: "This chart […]