スクリーンショット (以下のコードをプログラムで使用) と、画像を拡大 (私の場合は非常に遠い) し、ハード エッジを維持するために最近傍をレンダリングしたときに実際に画面に表示されるものとの間に矛盾が発生します。これらのフォーラムから次のスクリーンショット コードを取得しましたが、保存されるのは、最近傍ではなく画像の (バイリニア?) レンダリングです。
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 にサブビューとして追加されます)
ここに 2 つの画像があります。1 つ目は画面に表示されているもので、2 つ目は上記のスクリーンショット コードを使用して保存されたものです。(リンクはごめんなさい - 「スパム防止メカニズムとして、新しいユーザーは画像を投稿できません」)
http://www.flickr.com/photos/51983059@N08/8358662379/
http://www.flickr.com/photos/51983059@N08/8358662715/
助けてくれてありがとう!