** iOS开发:**
第一个例子:
使用[UIImage imageWithContentsOfFile:]创建UIImage,支持@2x,@3x的显示分辨率
如果手工创建一个UImage,
UIImage的内容使用 [UIImage imageWithContentsOfFile:fileName] 方式加载
图片的宽高为:90x90
但是
这张图片其实是用于一个30x30的UIImage的@3x模式的显示;
那么应该如何设置呢?
方法是:
让fileName中的文件结尾包含:@3x的后缀即可
第二个例子:
创建一个用于二倍图显示UIImage
如果使用fileName的方式,只要让文件名包含@2x,@3x即可;
但是如果不是从fileName来读取图片呢?
这就要利用UIImage的scale属性了。
下面的例子中,构建了一个像素为 70x70的UIImage,但是要按照35x35 imageSize 来显示这个UIImage,也就是说要让这个70x70的UIImage显示为 35x35 的二倍图显示方式;
有一种方法是利用UIImageView的contentMode来实现。
但有些场景下,这个方式可能并不好用,例如为UINavigtionItem设置leftBarButton的图片。
UIImage *cachedImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:@"urlKeyString"];
CGImageRef imgRef = [cachedImage resizeImageWithNewSize:CGSizeMake(70,scaleHeight)].CGImage;
UIImage *imgOk = [UIImage imageWithCGImage:imgRef scale:2 orientation:UIImageOrientationUp];
imgOk即为所求