当图像放大(在我的情况下非常远)并渲染最近邻以保留硬边缘时,我遇到屏幕截图(以编程方式使用下面的代码)与屏幕上实际显示的内容不一致。我从这些论坛获得了以下屏幕截图代码,但保存的是图像的(双线性?)渲染而不是最近邻。
UIGraphicsBeginImageContextWithOptions([[UIScreen mainScreen] bounds].size, NO, 0.0);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *imageView = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(imageView, nil, nil, nil);
我做最近邻的方式是在 ViewDidLoad 中使用以下行
automataView.layer.magnificationFilter = kCAFilterNearest;
(automataView 是一个带有 GIF 文件的 UIImageView,它作为子视图添加到处理缩放的 UIScrollView)
这里有两张图片,第一张是屏幕上的内容,第二张是使用上面的截图代码保存的。(抱歉链接 - “作为垃圾邮件预防机制,新用户不得发布图片”)
http://www.flickr.com/photos/51983059@N08/8358662379/
http://www.flickr.com/photos/51983059@N08/8358662715/
感谢您的任何帮助!