Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - (IBAction)doExport:(id)sender {
- ExportView *view = [[ExportView alloc] initWithNibName:@"ExportView" bundle:nil];
- [view.pic1 setImage:self.pic1.image];
- [view.pic2 setImage:self.pic2.image];
- [view.pic3 setImage:self.pic3.image];
- [view.icon setImage:self.icon.image];
- // Hardcoding for test
- [view.pic1 setImage:[NSImage imageNamed:@"iPhone 4-Inch Screenshot 1"]];
- [view.pic1 setNeedsLayout:YES];
- [view.pic1 setNeedsDisplay];
- [view.pic1 updateLayer];
- // Setup the image to render
- NSRect imgRect = view.view.frame;
- NSSize imgSize = imgRect.size;
- NSBitmapImageRep *rep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL
- pixelsWide:imgSize.width
- pixelsHigh:imgSize.height
- bitsPerSample:8
- samplesPerPixel:4
- hasAlpha:YES
- isPlanar:NO
- colorSpaceName:NSDeviceRGBColorSpace
- bitmapFormat:NSAlphaFirstBitmapFormat
- bytesPerRow:0
- bitsPerPixel:0];
- NSGraphicsContext *g = [NSGraphicsContext graphicsContextWithBitmapImageRep:rep];
- [NSGraphicsContext saveGraphicsState];
- [NSGraphicsContext setCurrentContext:g];
- // Set view background color
- CALayer *viewLayer = [CALayer layer];
- [viewLayer setBackgroundColor:[NSColor clearColor].CGColor];
- [view.view setWantsLayer:YES];
- [view.view setLayer:viewLayer];
- // Render
- CGContextRef zCgContextRef = (CGContextRef) [g graphicsPort];
- [[view.view layer] renderInContext:zCgContextRef];
- // Render pic as well, for test
- [view.pic1.layer renderInContext:zCgContextRef];
- // Get the Data for the image
- NSData *exportedData = [rep representationUsingType:NSJPEGFileType properties:nil];
- // Start the savepanel
- NSSavePanel *savepanel = [NSSavePanel savePanel];
- savepanel.title = @"Save chart";
- [savepanel setAllowedFileTypes:[NSArray arrayWithObject:@"jpg"]];
- [savepanel beginSheetModalForWindow:self.window completionHandler:^(NSInteger result)
- {
- if (NSFileHandlingPanelOKButton == result)
- {
- NSURL* fileURL = [savepanel URL];
- if ([fileURL.pathExtension isEqualToString:@""])
- fileURL = [fileURL URLByAppendingPathExtension:@"jpg"];
- [exportedData writeToURL:fileURL atomically:YES];
- }
- }];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement