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:
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:
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
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
- // Create mask bitmap buffer
- maskBuffer = NULL;
- colorSpace = CGColorSpaceCreateDeviceGray();
- maskBuffer = CGBitmapContextCreate(NULL,
- width,
- height,
- 8,
- width,
- colorSpace,
- kCGImageAlphaNone);
- CGColorSpaceRelease(colorSpace);
- if (maskBuffer == NULL) {
- NSLog(@"Error creating Mask Buffer");
- } else {
- NSLog(@"Mask Buffer created");
- }
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
- CGDataProviderRef maskData = CGBitmapContextGetData(maskBuffer);
- if (maskData == NULL) {
- NSLog(@"Error creating Mask Data");
- } else {
- NSLog(@"Mask Data created");
- }
- maskBufferImage = CGImageMaskCreate(width, height, 8, 8, width, maskData, NULL, YES);
- CGDataProviderRelease(maskData);
- if (maskBufferImage == NULL) {
- NSLog(@"Error creating ImageMask");
- }
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