我正在从 Java 迁移到 Objective C,用于 Mac 应用程序。这是一个屏幕共享应用程序。
经过分析,我发现使用 Objective C 创建的图像的大小大于使用 Java 创建的图像。我打算将 JPEG 用于桌面和其他图像窗口,将 8 位 PNG 用于浏览器/资源管理器窗口。对于这两种格式,Java 更好(即图像尺寸更小)。
例如:当我创建一个压缩系数为 0.6 的 JPEG 图像时,使用 Java 创建的图像大小为 103KB。同样的图像,当使用 Objective C 创建时,它是 201KB。
有没有办法优化图像大小,使使用 Objective C 创建的图像与使用 Java 创建的图像相同或更小?
使用的目标 C 代码
NSSize imageSize = [image size]; [image lockFocus]; NSRect imageRect =
NSMakeRect(0, 0, imageSize.width, imageSize.height); NSBitmapImageRep*
myBitmapImageRep = [[NSBitmapImageRep alloc]
initWithFocusedViewRect:imageRect]; [image unlockFocus]; NSDictionary*
options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithDouble:imageCompression], NSImageCompressionFactor,
[NSNumber numberWithBool:NO], NSImageProgressive,
nil]; NSData* imageData = [myBitmapImageRep representationUsingType:fileType
properties:options];