14 Stimmen

UIImageView Skalierung/Interpolation

Ich habe eine kleine iPhone-App, an der ich arbeite, und ich zeige ein Bild mit einem UIImageView an. Ich skaliere es mit dem Aspect Fit-Modus hoch. Ich möchte, dass das Bild ohne Interpolation/Glättung hochskaliert wird (es soll pixelig aussehen). Gibt es eine Möglichkeit, dieses Verhalten zu ändern?

Eine etwas allgemeinere Frage wäre, ob ich meinen eigenen Skalierungsalgorithmus implementieren kann oder ob es andere eingebaute gibt, die ich auswählen kann?

24voto

rpetrich Punkte 32030

Sie müssten die magnificationFilter-Eigenschaft auf der Ebene der Ansicht auf den nächsten Nachbarfilter setzen:

[[view layer] setMagnificationFilter:kCAFilterNearest]

5voto

rekle Punkte 2365

Vergewissern Sie sich, dass Sie die Zeile einbeziehen

#import 

Am Anfang der Datei, die den Aufruf von setMagnificationFilter enthält, oder sie wird nicht kompiliert.

5voto

neoneye Punkte 47046

Swift

imageView.layer.magnificationFilter = kCAFilterNearest
imageView.layer.shouldRasterize = true

Translation:

Swift

imageView.layer.magnificationFilter = kCAFilterNearest
imageView.layer.shouldRasterize = true

-2voto

DHamrick Punkte 8148

Es gibt zwei Möglichkeiten, dies zu tun. Sie können entweder einen Skalierungsalgorithmus ohne Interpolation implementieren. Wenn dies zu viel Aufwand ist, könnten Sie das Bild in einer anderen Anwendung wie Gimp oder Photoshop skalieren. Dies würde funktionieren, es sei denn, Sie müssten die Größe dynamisch in Ihrer Anwendung ändern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X