0

In my application, i am sending my desktop screenshot to web service by converting it to base64 string. Here is the code to obtain the screenshot.

CGImageRef screenShot = CGWindowListCreateImage(CGRectInfinite, kCGWindowListOptionOnScreenOnly, kCGNullWindowID, kCGWindowImageDefault); 

Now i want to convert this screenshot to base64 string format. Can anyone provide the solution to convert my screenshot to base64 string format.

Note: conversion from NSImage/NSData to base64 string format also acceptable.

4

1 回答 1

0

这是我将 CGImageRef 转换为 base64 字符串的实现。

CGImageRef screenShot = CGWindowListCreateImage(CGRectInfinite, kCGWindowListOptionOnScreenOnly, kCGNullWindowID, kCGWindowImageDefault); 

NSBitmapImageRep * bitmapImageRep = [[NSBitmapImageRep alloc]initWithCGImage:screenShot];

NSImage *image = [[NSImage alloc] init];

[image addRepresentation:bitmapImageRep];

NSData *imgData = [image TIFFRepresentation];

NSString *encodedString = [self base64encde: imgData];

//编码base64

- (NSString*)base64encde:(NSData*)input
{
    SecTransformRef transform = SecEncodeTransformCreate(kSecBase64Encoding, NULL);

    return [[NSString alloc] initWithData:base64helper(input, transform) encoding:NSASCIIStringEncoding] ;
}
于 2014-09-25T14:53:16.147 回答