Hallo,
ich brauche ein Bild von einem CALayer, bzw. des Layertrees - was nicht so gut gelingen will:
Alles anzeigen
Das funktioniert zwar mit dem BitmapContext und dann das CGImage erzeugen lassen, aber nur bei CALayern, die ich selbst male . Bei denen, die mit setContents: ein Bild mitbekommen und nicht selbst gezeichnet werden, bekomme ich nur ein leeres (transparentes) Bild.
Hat jemand ne Ahnung, wie man das hinbekommt?
Vielen Dank schon mal
Manfred
ich brauche ein Bild von einem CALayer, bzw. des Layertrees - was nicht so gut gelingen will:
Quellcode
- - (IBAction) knob:(id)sender
- {
- CGContextRef ctx;
- CGImageRef cgi;
- CALayer *l = [[[self imageMill] rootLayer] backgroundLayer];
- CGSize s = [l frame].size;
- ctx = OCCreateARGBBitmapContextOfSize(s.width, s.height);
- if (ctx == NULL)
- {
- NSLog(@"Error creating context");
- return;
- }
- CGContextSaveGState(ctx);
- [l drawInContext: ctx];
- cgi = CGBitmapContextCreateImage (ctx);
- NSImage *image = OCCGImageToNSImage(cgi);
- CGContextRestoreGState(ctx);
- NSLog(@"image snap %@", image);
- [[image TIFFRepresentation] writeToFile: @"/Users/manfred/Desktop/asnap.tiff" atomically: YES];
- }
Das funktioniert zwar mit dem BitmapContext und dann das CGImage erzeugen lassen, aber nur bei CALayern, die ich selbst male . Bei denen, die mit setContents: ein Bild mitbekommen und nicht selbst gezeichnet werden, bekomme ich nur ein leeres (transparentes) Bild.
Hat jemand ne Ahnung, wie man das hinbekommt?
Vielen Dank schon mal
Manfred
Seminare, Artikel, Code. ObjectiveCeeds - alles für die Apfelzucht.