1. 图片质量问题
- (UIImage *)scaleToSize:(CGSize)size
{
UIGraphicsBeginImageContext(size);
[self drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;
}
上面的代码返回的图片显示出来会模糊,查原因,发现UIGraphicsBeginImageContext函数的问题,在iPhone有了高清屏之后,应该使用UIGraphicsBeginImageContextWithOptions();
UIGraphicsBeginImageContextWithOptions(destSize, YES, [UIScreen mainScreen].scale);
2. 缩放并且剪切的问题
如果UIImage需要剪切并且缩放,应该是先缩放再剪裁,还是先剪裁再缩放?
要先按比例剪切,再做缩放处理。顺序反过来的话得不到想要的结果。
3. @2x和@3x问题
不管使用[UIImage imageNamed:XXX]方式还是[UIImage imageWithContentsOfFile:xxx]方式加载一张xxx@3x.png图,加载成功后UIImage对象的scale属性都会是3.而且@2x和@3x的命名会影响后期处理。
如果App的引导页面图需要为适配各种屏幕进行裁剪缩放处理的话,建议命名xxx.png而不是xxx@2x.png或xxx@3x.png.
否则也得不到预想的结果。