我有一个大徽标图像(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!)
这很有效。问题是图像尺寸缩小后图像质量非常低。
如何在不降低质量的情况下将大图像绘制成较小的图像?
答案 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与原始图像尺寸不相称。