I will demonstrate it in 2 situations.
Image in xib
If you use an image in xib, it will inspect the filename of the image, if it has the @2x suffix, it size will divide by 2. I have an example here. I have an image named refresh.png, its size if 40*40 in pixel, if I use it in xib, it present like this:
and if I rename it to refresh@2x.png, it present :
Image load manually
If you load the image by code, the property scale
of UIImage
tells what happened.
@property(nonatomic, readonly) CGFloat scale Discussion If you load an
image from a file whose name includes the @2x modifier, the scale is
set to 2.0. You can also specify an explicit scale factor when
initializing an image from a Core Graphics image. All other images are
assumed to have a scale factor of 1.0.
If you multiply the logical size of the image (stored in the size
property) by the value in this property, you get the dimensions of the
image in pixels.
Conclusion: To answer your question, the answer is no obviously. I think the important thing is the difference between pixel and point. On non-retina device, one point is one pixel, on retina device one point is 2*2 pixel. In my example, Xib will arrange the image according to its size
property (which reflects the logical size of the image and is measured in points in ios 4.0 and later.). If your image is 40*40 in pixels and without the @2x suffix, its size will be 40*40 point and its scale will be 1.0. If you rename it with @2x suffix, its size will be 20*20 point and scale will be 2.0.
Naming the image resource for retina device with @2x suffix is a convention, so just follow it or you will be in trouble.
More about imageNamed:
method 、scale
and size
property of UIImage here.