如何以低质量拍摄屏幕截图

麦克努尔

有没有办法以编程方式在osx上截图(低质量)?

我开发了如下功能:

CGImageRef resizeImage(CGImageRef imageRef) {
    CGRect thumRect;
    CGPoint point;
    point.x = 0;
    point.y = 0;
    thumRect.origin = point;
    thumRect.size.height = 225;
    thumRect.size.width = 360;

    CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);

    if (aplhaInfo == kCGImageAlphaNone)
        alphaInfo = kCGImageAlphaNoneSkipLast;

   CGContextRef bitmap = CGBitmapContextCreate(NULL, thumRect.size.width, thumRect.size.height, CGImageGetBitsPerComponent(imageRef), 4 * thumRect.size.width, CGImageGetColorSpace(imageRef), alphaInfo);

   CGContextDrawImage(bitmap, thumRect, imageRef);
   imageRef = CGBitmapContextCreateImage(bitmap);
   CGContextRelease(bitmap);

return imageRef;
}

运行此功能时,我拍摄了150KB至600KB的图像。如果减小thumRect大小,则无法读取图像中的任何字符。但是,我想将这些图像尽可能降低。有什么建议或其他可能的解决方案吗?

谢谢。

麦克努尔

我找到了以下解决方案:首先,用我的问题中的代码调整图像的大小。

然后压缩它:)

//imageRef is CGImageRef
NSImage * image = [[NSImage alloc] initWithCGImage:imageRef size:NSZeroSize];
NSBitmapImageRep *bmpImageRep = [NSBitmapImageRep imageRepWithData [image TIFFRepresentation]];

CGFloat compressionFactor = 1.0 //Read it : (1)
NSDictionary *jpgProperties = [NSDictionary dictionaryWithObjectsAndKeys:
                          [NSNumber numberWithDouble:compressionFactor], NSImageCompressionFactor, [NSNumber numberWithBool:NO], NSImageProgressive, nil];

NSData *jpgData = [bmpImageRep representationUsingType:NSJPEGFileType properties:jpgProperties];

(1):https : //developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBitmapImageRep_Class/index.html#//apple_ref/doc/constant_group/Bitmap_image_properties

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何降低使用硒拍摄的屏幕截图的质量或尺寸?

来自分类Dev

如何以编程方式拍摄iPad主屏幕的屏幕截图?

来自分类Dev

如何拍摄ImageView的屏幕截图?

来自分类Dev

如何拍摄imageView的屏幕截图?

来自分类Dev

如何拍摄整个屏幕的屏幕截图

来自分类Dev

如何以编程方式拍摄整个活动页面的屏幕截图?

来自分类Dev

Selenium如何以相同的窗口大小分辨率拍摄屏幕截图

来自分类Dev

如何拍摄快门菜单的屏幕截图?

来自分类Dev

如何拍摄WPF控件的屏幕截图?

来自分类Dev

如何使用Javascript拍摄网页的屏幕截图

来自分类Dev

如何拍摄指标菜单的屏幕截图?

来自分类Dev

如何拍摄全屏视频的屏幕截图?

来自分类Dev

如何在Flutter中拍摄屏幕截图?

来自分类Dev

如何拍摄指标菜单的屏幕截图?

来自分类Dev

如何拍摄全屏视频的屏幕截图?

来自分类Dev

如何拍摄快门菜单的屏幕截图?

来自分类Dev

如何使用Javascript拍摄网页的屏幕截图

来自分类Dev

如何拍摄WPF控件的屏幕截图?

来自分类Dev

如何全屏拍摄YouTube视频的屏幕截图?

来自分类Dev

如何使用Aero特效拍摄屏幕截图?

来自分类Dev

如何拍摄gksudo窗口的屏幕截图?

来自分类Dev

拍摄UIPickerView的屏幕截图

来自分类Dev

屏幕截图的质量

来自分类Dev

屏幕截图的质量

来自分类Dev

如何在Node JS中拍摄整个屏幕的屏幕截图?

来自分类Dev

如何拍摄Windows 10登录屏幕的屏幕截图?

来自分类Dev

拍摄具有预定义图像尺寸的WPF窗口的屏幕截图,而不会损失质量

来自分类Dev

iOS7如何拍摄OpenGLES屏幕截图。

来自分类Dev

如何使用QTP拍摄应用程序的屏幕截图?

Related 相关文章

热门标签

归档