调整大小的UIImages质量差

时间:2012-07-05 20:15:38

标签: objective-c ios uiimage retina-display

我正在尝试创建一个兼容视网膜和非视网膜显示器的应用程序。我正在使用高分辨率图像,并让操作系统缩小它们以用于非视网膜显示器。

图像名为xxx@2x.png,我加载的名称相同。这样可以工作,并且图像在两种设备类型上以相同的相对大小显示。不幸的是,非视网膜显示器上调整大小的图像的质量远非理想。

self.navigationItem.rightBarButtonItem.image = [localAssets imageAtPath:@"content/home/settings@2x.png"];

+ (UIImage*)imageAtPath:(NSString*)path;
{
    NSString* extension = [path pathExtension];
    path = [path stringByDeletingPathExtension];

    NSString* filePath = [[NSBundle mainBundle] pathForResource:[path lastPathComponent] 
                                                         ofType:extension 
                                                    inDirectory:[path stringByDeletingLastPathComponent]];
    UIImage* theImage = [UIImage imageWithContentsOfFile:filePath];

    if(!theImage)
    {
        NSLog(@"Error no file found at %@", [path stringByAppendingPathExtension:extension]);
    }
    return theImage;
}

视网膜:

http://i.imgur.com/gmn1q.png

遗产:

enter image description here

1 个答案:

答案 0 :(得分:2)

如果您自己调整图像大小,并将其保存为xxx.png和xxx@2x.png,则可以将它们用作“xxx”,iOS将在使用Retina显示屏时自动使用@ 2x版本。