Pregunta

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?

¿Fue útil?

Solución

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];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top