【发布时间】:2013-01-22 20:28:51
【问题描述】:
我正在从 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];
【问题讨论】:
标签: objective-c image png jpeg