Beste Testweise, wenn ein NSIMAGE / CGIMAGEREF vollständig transparent ist
-
24-10-2019 - |
Frage
Ich habe ein Bild mit Fliesen, mit dem ich mich auftrete und einzelne Fliesen erstelle.
Diese Bilder enthalten jedoch normalerweise vollständig leere Bereiche (in diesem Fall Fliesen), die ich ausschließen möchte. Diese Bereiche sind völlig transparent.
Wie gehe ich nun nach, um sie zu entdecken? Könnte das Fliesenpixel von Pixel durch lesen NSBitmapImageRep
Aber das klingt nicht sehr effizient.
Was ist also der beste Weg, um die Transparenz der Fliese zu testen (sie werden zu a beschnitten CGImageRef
, und dann zu einem konvertiert NSImage
- Wenn das hilft)
Lösung
Wenn es Ihnen nichts ausmacht, einen 10 10.6-Anruf zu verwenden, können Sie das ausprobieren NSImage
Methode
hitTestRect:withImageDestinationRect:context:hints:flipped:
Das wäre Einfacher als Pixel mit Pixel zu überprüfen, aber ich weiß nicht, ob es effizienter wäre. Irgendwann müssen diese Pixel überprüft werden ...