Ich stoße auf eine Inkonsistenz zwischen einem Screenshot (programmatisch mit dem Code unten) und was ist eigentlich auf dem Bildschirm, wenn ein Bild gezoomt (sehr weit in meinem Fall) und gerendert nächsten Nachbarn zu bewahren die harten Kanten. Ich habe den folgenden Screenshot-Code von diesen Foren erhalten, aber was gespeichert wird, ist ein (bilineares?) Rendering des Bildes anstelle des nächsten Nachbarn.programmatische screenshot falsche nächste Nachbarin
UIGraphicsBeginImageContextWithOptions([[UIScreen mainScreen] bounds].size, NO, 0.0);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *imageView = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(imageView, nil, nil, nil);
die Art, wie ich nächste Nachbarn zu tun mit der folgenden Zeile in ViewDidLoad ist
automataView.layer.magnificationFilter = kCAFilterNearest;
(automataView ist ein UIImageView mit einer GIF-Datei in ihm, und es ist als ein Subview zu einem UIScrollView hinzugefügt, handhabt das Zoomen)
Hier sind zwei Bilder, das erste ist, was auf dem Bildschirm ist, das zweite ist was mit dem obigen Screenshot Code gespeichert wird. (Sorry für die Links - "als Spam-Mechanismus zur Verhinderung, neue Benutzer nicht zu veröffentlichen Bilder erlaubt")
http://www.flickr.com/photos/[email protected]/8358662379/
http://www.flickr.com/photos/[email protected]/8358662715/
Vielen Dank für jede Hilfe!
Haben Sie eine Lösung gefunden? –