默认情况下,UIImageView在UIImageView中将其图像显示为1px的image = 1pt,但我想显示为2px的image = 1pt。
名称为“.. @ 2x ..”的保存图像版本不合适,图像未保存在文件系统中。
例如,图像尺寸为400x100,我想在显示器中央显示图像,左边应为120 pt,图像右边为120 pt(640-400)/ 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]
}