我正在使用 UIGraphicsGetImageFromCurrentImageContext() 函数将屏幕内容捕获到 UIImage 对象中(之前渲染到图像上下文中)。这对于模拟器和真实设备都非常有效,但是在后者中,生成的图像有一些颜色扭曲的像素,如下所示:
http://img300.imageshack.us/img300/2788/screencap.png
请注意顶部导航栏、搜索字段两侧和按钮右侧的几个紫红色像素。左下按钮右侧也有这样的像素。
我用来将屏幕 View 捕获到 UIImage 对象中的代码非常简单:
UIGraphicsBeginImageContext(self.view.window.frame.size);
[self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *anImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
需要注意的一点是,所有扭曲的图形都属于自定义 PNG 文件,用于绘制搜索字段背景以及按钮背景。
有谁知道什么可能导致这种奇怪的颜色失真?
最诚挚的问候,
最佳答案
刚刚检查了我自己的代码,它正在做与您相同的事情。你的几乎与我的相同,除了我要求渲染 View 的层而不是窗口的层,即:
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
我不知道为什么这会有所不同,但值得一试。
关于iphone - 捕获的 UIView 图像颜色失真(iPhone SDK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1902741/