NSBitmapImageRep oder NSImage: Alpha-Kanal entfernen

  • NSBitmapImageRep oder NSImage: Alpha-Kanal entfernen

    Folgendes Problem: Ich habe ein Bild mit einem Alpha-Kanal in eine NSBitmapImageRep gezeichnet. Zum weiterverarbeiten möchte ich aber den Alpha-Kanal entfernen und Transparenz durch weiss ersetzen. Wie mache ich das am geschicktesten?

    Gruss
    Daniel
    There will always be skeptics.
    There will always be disbelievers.
    And there will always be Apple to prove them wrong.
  • RE: NSBitmapImageRep oder NSImage: Alpha-Kanal entfernen

    Ich habe ein Bild mit einem Alpha-Kanal in eine NSBitmapImageRep gezeichnet.

    Warum in eine 'bitmap'?
    Die übliche Methode ist doch einfach:

    Quellcode

    1. // as method of NSImage
    2. - (NSImage *) imageOnWhiteBackground {
    3. NSSize size = [self size]
    4. NSImage *image = [[NSImage alloc] initWithSize: size];
    5. [image lockFocus];
    6. [[NSColor whiteColor] set];
    7. [NSBezierPath fillRect: NSMakeRect (0.0, 0.0, size.width, size.height)];
    8. [self compositeToPoint:NSMakePoint(0.0, 0.0) operation:NSCompositeSourceOver fraction:1.0];
    9. [image unlockFocus];
    10. return [image autorelease];
    11. }
    Alles anzeigen

    oder auch mit 'drawInRect', wenn die Größe verändert werden soll.
    I would be embarrassed if they did not spy on me.
  • RE: NSBitmapImageRep oder NSImage: Alpha-Kanal entfernen

    finde ich gut, dass das die übliche Methode ist. Funktioniert nämlich :D Danke!

    Gruss
    Daniel
    There will always be skeptics.
    There will always be disbelievers.
    And there will always be Apple to prove them wrong.