如何将CGImageRef转换为base64字符串

时间:2014-09-02 13:47:32

标签: cocoa base64 cgimageref

在我的应用程序中,我将桌面截图发送到web服务,方法是将其转换为base64字符串。以下是获取屏幕截图的代码。

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

现在我想将此屏幕截图转换为base64字符串格式。任何人都可以提供将我的屏幕截图转换为base64字符串格式的解决方案。

注意:从NSImage / NSData到base64字符串格式的转换也是可以接受的。

1 个答案:

答案 0 :(得分: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] ;
}
相关问题