Ответ 1
Я столкнулся с этой проблемой. Я думаю, вы используете iPhone 4 с Retina Display. Даже если вы этого не сделаете, вы должны это учитывать. Вместо UIGraphicsBeginImageContext()
используйте UIGraphicsBeginImageContextWithOptions()
и используйте свойство scale
для UIScreen
для третьего аргумента. Все устройства iOS имеют свойство scale, на iPhone 4 установлено значение 2.0; на остальном, как я пишу это, он установлен в 1.0.
Таким образом, ваш код с этими изменениями станет
-(UIImage *)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
// Create a bitmap context.
UIGraphicsBeginImageContextWithOptions(newSize, YES, [UIScreen mainScreen].scale);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}