(Mac) BitmapContext zu ImageMask macht Probleme

  • (Mac) BitmapContext zu ImageMask macht Probleme

    Hallo OSX-Entwicklergemeinde,

    ich beschäftige mich seit einigen Monaten mit der Mac-Programmierung, bin also noch Anfänger. Die in meiner Vorstellung relativ einfache Aufgabe aus einem BitmapContext eine ImageMask zu machen überfordert mich nun leider. Ich lege den BitmapContext mit folgendem Code an:

    Quellcode

    1. // Create mask bitmap buffer
    2. maskBuffer = NULL;
    3. colorSpace = CGColorSpaceCreateDeviceGray();
    4. maskBuffer = CGBitmapContextCreate(NULL,
    5. width,
    6. height,
    7. 8,
    8. width,
    9. colorSpace,
    10. kCGImageAlphaNone);
    11. CGColorSpaceRelease(colorSpace);
    12. if (maskBuffer == NULL) {
    13. NSLog(@"Error creating Mask Buffer");
    14. } else {
    15. NSLog(@"Mask Buffer created");
    16. }
    Alles anzeigen


    In diesen Context zeichne ich also mit ein paar Zeilen Code meine Maske. Wenn ich dann den Context in ein Image wandle und in einem View anzeige sieht das auch soweit korrekt aus.
    Mit folgendem Code versuche ich aus dem BitmapContext eine ImageMask zu machen:

    Quellcode

    1. CGDataProviderRef maskData = CGBitmapContextGetData(maskBuffer);
    2. if (maskData == NULL) {
    3. NSLog(@"Error creating Mask Data");
    4. } else {
    5. NSLog(@"Mask Data created");
    6. }
    7. maskBufferImage = CGImageMaskCreate(width, height, 8, 8, width, maskData, NULL, YES);
    8. CGDataProviderRelease(maskData);
    9. if (maskBufferImage == NULL) {
    10. NSLog(@"Error creating ImageMask");
    11. }
    Alles anzeigen



    Ich erhalte zwar keine Fehlermeldung, es kommt aber als ImageMask nur eine weiße Fläche an. Ich vermute daß der Fehler in der Umwandlung über den CGDataProvider liegt, die Dokumentation dazu ist für mich aber leider eher verwirrend als erhellend. Ich wäre sehr dankbar für jeden Hinweis auf das richtige Vorgehen, bzw. wo mir offensichtlich das nötige Wissen fehlt um dieses Vorhaben umzusetzen.

    Joe