如何使用renderInContext:CGBitmapContextCreate和Retina?

时间:2013-04-09 23:16:59

标签: calayer retina-display cgbitmapcontext

我手动创建了一个CGBitmapContext:

bitmapContext = CGBitmapContextCreate( myImageData, width, height, 8, 4 * width, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big );

并为其绘制图层:

[self.myView.layer renderInContext:bitmapContext];

然而,在Retina上,我的图层仅渲染原始尺寸的一半。

contentScaleFactor上设置UIView属性不会改变任何内容。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:6)

当然,在我问这个问题的那一刻,答案就出现了。只需这样做:

float scale = self.myView.contentScaleFactor;

CGContextScaleCTM(context, scale, scale);

[self.myView.layer renderInContext:context];