Frage

habe ich eine UIImage mit weißen Hintergrund. Ich mag das weißen Hintergrund / Pixel mit alpha-transparenten Pixel ersetzen. Ich habe in anderen Fragen auf Stackoverflow sehe, zusammen mit Quarz-Dokumentation, habe aber noch einen kohärenten zu finden „start-to-End“ für dieses Problem. Wie wird das gemacht?

War es hilfreich?

Lösung

CGImageCreateWithMaskingColors

Ein UIImage wickelt eine CGImage. Nehmen Sie die CGImage, führen Sie es durch CGImageCreateWithMaskingColors, dann entweder eine neue UIImage aus dem Ergebnis erstellen oder das Ergebnis zurück an den UIImage zuweisen.

Andere Tipps

Der erste Schritt ist es, Sie brauchen eine Art von „Distanz“ Funktion zu definieren, um zu bestimmen, wie weit entfernt ein Pixel aus weiss ist. Dann brauchen Sie einen Distanzschwelle zu definieren, unterhalb derer ein Pixel weiß betrachtet. Dann würden Sie über die Pixel des Bildes zu wiederholen müssen, keine Pixel zu ändern, die weiß betrachtet wurden nach Ihrer Entfernung und Schwelle, um transparent zu sein. Der wichtigste Trick, aber macht diese effizienten ... berührende Pixel durch Funktionen wird sehr langsam sein; Ihre beste Wette ist, um die Pixel directl durch den Zugang zu den Speicherpuffer, in dem die Pixel befinden und Schritt durch sie berühren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top