// 如果在視網膜下修改圖片大小,會使畫質變差
+ (UIImage *) scaleFromImage: (UIImage *) image toSize: (CGSize) size
{
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
解決方法:
+ (UIImage *) scaleFromImage: (UIImage *) image toSize: (CGSize) size
{
//Determine whether the screen is retina
if([[UIScreen mainScreen] scale] == 2.0){ // @2x
UIGraphicsBeginImageContextWithOptions(size, NO, 2.0);
}else if([UIScreen mainScreen] scale] == 3.0){ // @3x ( iPhone 6plus 、iPhone 6s plus)
UIGraphicsBeginImageContextWithOptions(size, NO, 3.0);
}else{
UIGraphicsBeginImageContext(size);
}
// 繪製改變大小的圖片
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
// 從當前context中創建一個改變大小後的圖片
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
// 使當前的context出堆棧
UIGraphicsEndImageContext();
// 返回新的改變大小後的圖片
return scaledImage;
}