From 10753bb33f9b7ec2c190999db366cb60d1fcbbba Mon Sep 17 00:00:00 2001 From: hfcorriez Date: Mon, 3 Nov 2014 16:56:13 +0800 Subject: [PATCH] Add pasteImage API to handle paste image --- MacGap/Clipboard.h | 1 + MacGap/Clipboard.m | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/MacGap/Clipboard.h b/MacGap/Clipboard.h index 6c1a2f5..7634c82 100644 --- a/MacGap/Clipboard.h +++ b/MacGap/Clipboard.h @@ -6,5 +6,6 @@ - (void) copy:(NSString*)text; - (NSString *) paste; +- (NSString *) pasteImage; @end diff --git a/MacGap/Clipboard.m b/MacGap/Clipboard.m index 1c18dea..a694fda 100644 --- a/MacGap/Clipboard.m +++ b/MacGap/Clipboard.m @@ -27,6 +27,24 @@ - (NSString *) paste { return @""; } +- (NSString *) pasteImage { + NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; + NSArray *classArray = [NSArray arrayWithObject:[NSImage class]]; + NSDictionary *options = [NSDictionary dictionary]; + BOOL ok = [pasteboard canReadObjectForClasses:classArray options:options]; + if (ok) { + NSArray *objectsToPaste = [pasteboard readObjectsForClasses:classArray options:options]; + NSImage *image = [objectsToPaste objectAtIndex:0]; + [image lockFocus]; + NSBitmapImageRep *bitmapRep = [[NSBitmapImageRep alloc] initWithFocusedViewRect:NSMakeRect(0, 0, image.size.width, image.size.height)]; + [image unlockFocus]; + NSData *imageData = [bitmapRep representationUsingType:NSPNGFileType properties:nil];; + NSString *base64String = [imageData base64EncodedStringWithOptions:0]; + return base64String; + } + return @""; +} + + (NSString*) webScriptNameForSelector:(SEL)selector { id result = nil;