Ein UIImage zuschneiden

Ich habe einen Code, der die Größe eines Bildes ändert, damit ich einen skalierten Teil der Bildmitte erhalten kannUIImage und geben Sie eine kleine, quadratische Darstellung eines Bildes zurück, ähnlich wie in der Albumansicht der Foto-App. (Ich weiß, ich könnte einen gebrauchenUIImageView und stellen Sie den Zuschneidemodus ein, um die gleichen Ergebnisse zu erzielen, aber diese Bilder werden manchmal in angezeigtUIWebViews).

Ich habe angefangen, einige Abstürze in diesem Code zu bemerken und bin ein bisschen ratlos. Ich habe zwei verschiedene Theorien und frage mich, ob beide auf der Basis sind.

Theorie 1) Ich erreiche das Zuschneiden, indem ich in einen Offscreen-Bildkontext meiner Zielgröße zeichne. Da ich den mittleren Teil des Bildes haben möchte, setze ich denCGRect Argument übergeben andrawInRect zu etwas, das größer ist als die Grenzen meines Bildkontexts. Ich hatte gehofft, dies sei koscher, aber versuche ich stattdessen, andere Erinnerungen zu nutzen, die ich nicht berühren sollte?

Theorie 2) Ich mache das alles in einem Hintergrund-Thread. Ich weiß, dass es Teile von UIKit gibt, die auf den Haupt-Thread beschränkt sind. Ich habe angenommen / gehofft, dass das Zeichnen in einer Offscreen-Ansicht nicht dazu gehört. Liege ich falsch?

(Oh, wie ich vermisseNSImage's drawInRect:fromRect:operation:fraction: Methode.)

Antworten auf die Frage(23)

Ihre Antwort auf die Frage