是否可以使用CGContextScaleCTM来创建视网膜图像?

时间:2014-08-12 20:04:50

标签: objective-c macos scaling retina-display cgcontext

所以我在这里创建CGContextRef

CGContextRef bitmapContext = CGBitmapContextCreate(NULL, width, height, 8, 0, colorspace, kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host);

然后我在CGLayer上绘制CGContextRef

CGContextDrawLayerAtPoint(bitmapContext, dest, cgLayer);

当我使用CGContextScaleCTM

调整上下文大小时
CGContextScaleCTM(bitmapContext, 1/self.desiredScale, 1/self.desiredScale);

我的图像最小两倍,但也有一半的DPI。我希望基本上是图像大小的一半,同时加倍DPI将其变成视网膜图像。

我无法找到任何好的线索,所以任何信息都会很棒

提前致谢!

1 个答案:

答案 0 :(得分:1)

你想用"真像素"来创建上下文。大小(通常是iPhone 6+的三倍),并使用乘数作为比例。基本上,与你正在做的事情相反。

因此,以2x获得200x200pt图像:

CGBitmapContextCreate(nil, 400, 400, ...)
CGContextScaleCTM(context, 2, 2)