缩小的图像是以非常低的质量绘制的?

时间:2015-06-04 01:46:49

标签: ios swift uiimageview

我有一个大徽标图像(1000x500)。我想使用此图像并将其绘制在尺寸为100x100的框架中。我是这样做的:

self.logo = UIImageView(image: UIImage(named: "logoBig")!)
self.logo?.contentMode = UIViewContentMode.ScaleAspectFit
self.logo?.frame = CGRectMake(self.view.bounds.width/2 - 50, 50, 100, 100)
self.view.addSubview(self.logo!)

这很有效。问题是图像尺寸缩小后图像质量非常低。

如何在不降低质量的情况下将大图像绘制成较小的图像?

2 个答案:

答案 0 :(得分:0)

试试这样:

let logo = UIImageView(frame: CGRectMake(view.bounds.midX - 50, 50, 100, 100))
logo.contentMode = .ScaleAspectFit
logo.image = UIImage(named: "logoBig")!
view.addSubview(logo)

答案 1 :(得分:0)

尝试使用此方法

 - (UIImage*)resizeImage:(UIImage*)image scaledToSize:(CGSize)newSize{ 
    //UIGraphicsBeginImageContext(newSize);
    // In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution).
    // Pass 1.0 to force exact pixel size.
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;
}

如果您想再次调整图像大小,请保留原始图像并将其用于不同尺寸。

添加注意事项: 此外,原始图像大小为1000x500,调整大小会使图像的宽高比失去,因为100x100与原始图像尺寸不相称。