I have manually created a CGBitmapContext:

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

And drawing a layer to it:

[self.myView.layer renderInContext:bitmapContext];

However, on Retina my layer renders only at half the original size.

Setting the contentScaleFactor property on the UIView doesn't change anything.

What's the right way to do this?

有帮助吗?

解决方案

Of course the answer came to me the minute I asked the question. Simply do this:

float scale = self.myView.contentScaleFactor;

CGContextScaleCTM(context, scale, scale);

[self.myView.layer renderInContext:context];
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top