0

私のアプリケーションでは、デスクトップのスクリーンショットを base64 文字列に変換して Web サービスに送信しています。スクリーンショットを取得するコードは次のとおりです。

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

このスクリーンショットをbase64文字列形式に変換したいと思います。スクリーンショットをbase64文字列形式に変換するソリューションを誰でも提供できますか?

注: NSImage/NSData から base64 文字列形式への変換も受け入れられます。

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 に答える