Подтвердить что ты не робот

Как изменить изображение с хорошим качеством в iPhone

Я хочу создать библиотеку фотографий как существующую библиотеку фотографий в iPhone. Я добавляю изображение в scrollviewer, которое выбрано из библиотеки фотографий. Перед добавлением изображения я изменяю размер выбранного изображения и устанавливаю его в ImageView Control. Но когда я сравниваю с добавленным качеством изображения с качеством изображения в библиотеке iPhone, мой управляющий образ не очень хорош. Как повысить качество и проблему с переполнением памяти.

-(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
    // Create a bitmap context.
    UIGraphicsBeginImageContext( newSize );
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;

}
4b9b3361

Ответ 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;

}