UIImagnetisieren Sie die Größe mit harten Kanten

8

Ich brauche eine Methode zur Größenänderung von UIImage wie in Photoshop mit "nearest neighbor" Resampling. Ich suchte nach etwas, aber alles, was ich fand, war über CoreGraphics dicks, um bikubische Resampling-Qualität zu verbessern. Ich habe Pixel-Stil-Design in meiner App, und viele Sachen, die ich per Pixel erstellen und dann mit x5 Multiplikator vergrößern (und es dauert eine Menge Zeit, so dass ich sogar ein Skript für Photoshop schreiben). Zum Beispiel:

& gt;

Aber ich brauche dieses Ergebnis nicht wirklich:

Vielleicht wird mir jemand den richtigen Weg zeigen.

    
kokoko 08.07.2012, 21:46
quelle

1 Antwort

16

Wenn Sie Ihr Bild in einen Grafikkontext zeichnen, können Sie die Interpolationsqualität des Grafikkontexts wie folgt auf "none" setzen (z. B. in der drawRect -Methode einer Ansicht):

%Vor%

Wenn Sie das Ergebnis als UIImage benötigen (zB um es einem integrierten UI-Steuerelement zuzuordnen), könnten Sie dies mit UIGraphicsBeginImageContext machen (Sie finden viele Beispiele dafür).

Eine Alternative wäre, die Eigenschaft magnificationFilter der Ebene einer Bildansicht festzulegen:

%Vor%

Dies ist wahrscheinlich schneller und speichersparender, weil Sie das Bild nicht neu zeichnen müssen.

    
omz 12.07.2012, 17:37
quelle