views:

66

answers:

1

Before the retina display came to iOS, I've developed some controls which are drawn using stretchable images and lots of core graphics code.

Now I tested it on a retina display device, and the graphics are misplaced and distorted. Everything else that's loaded with @2x suffix and UIImage imageNamed works fine.

I assume there must be some special considerations when using images in core graphics. For example, I obtain the CGImage from an UIImage very often.

Does anyone know?

+1  A: 

UIImage is a facade on top of CGImage (and IOSurface as a private API). Since CGImage has no concept of scale, it will reflect the actual size of the image's buffer--for @2x images, the CGImage dimensions will be twice what the UIImage's size are.

rpetrich
so every time I deal with an CGImage, anywhere, I would have to multiply the sizes with the scale? Another question to this: http://stackoverflow.com/questions/3745126/must-i-multiply-the-scale-with-the-point-values-for-retina-display-in-this-case
openfrog