如何在UIImageView中显示高分辨率图像

时间:2012-07-16 09:18:37

标签: iphone objective-c ios

默认情况下,UIImageView在UIImageView中将其图像显示为1px的image = 1pt,但我想显示为2px的image = 1pt。

名称为“.. @ 2x ..”的保存图像版本不合适,图像未保存在文件系统中。

例如,图像尺寸为400x100,我想在显示器中央显示图像,左边应为120 pt,图像右边为120 pt(640-400)/ 2

2 个答案:

答案 0 :(得分:1)

这很简单,请注意,对于iOS 4以下的版本,你没有Retina显示器,这就是为什么在图像缩放方法中我首先要进行此检查:

//Retina detect
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2){

然后从某处(文件,缓存等)加载image我正在以这种方式缩放

UIImage * image2Xscaled = [UIImage alloc];
            image = [[image2Xscaled initWithCGImage:[image CGImage] scale:2.0 orientation:UIImageOrientationUp] autorelease];

方法

initWithCGImage:scale:orientation:

适用于iOS 4.0。这就是你需要第一次检查的原因。如果不支持销售,请返回1.0缩放图像。

答案 1 :(得分:0)

您可以使用以下内容:

NSData *data = //your data, however you get that...
UIImage *image = [UIImage imageWithData:data];
if ([UIScreen mainScreen].scale > 1.0f)
{
    image = [UIImage imageWithCGImage:image
                                scale:[UIScreen mainScreen].scale
                          orientation:UIImageOrientationUp]
}