Изменение размера изображения iOS: есть ли лучшая интерполяция, чем kCGInterpolationHigh? - PullRequest
2 голосов
/ 14 января 2012

Я использую этот метод для изменения размера изображения в два раза по сравнению с его первоначальными размерами:

- (UIImage *)doubleSizeImage:(UIImage *)image {
    CGSize newSize = CGSizeMake(image.size.width*2, image.size.height*2);
    UIGraphicsBeginImageContext(newSize);
    CGContextSetInterpolationQuality(UIGraphicsGetCurrentContext(), kCGInterpolationHigh);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return newImage;
 }

Дело в том, что интерполяция все еще плоха: я хорошо вижу пиксельный эффект, который, например,iOS Safari не имеет при масштабировании страниц.Поэтому мне было интересно, есть ли лучший способ увеличить изображение, также используя стороннюю библиотеку / категорию или что-то в этом роде?Спасибо!

1 Ответ

2 голосов
/ 15 января 2012

Каждый раз, когда вы выполняете интерполяцию, вы получаете какие-то артефакты.

Safari не получает артефакты на странице, потому что страница по сути является векторным документом с контурными шрифтами и объектами изменяемого размера -но если вы посмотрите на растровое изображение на странице, вы увидите, что если вы взорвете его достаточно, изображение будет действительно отображать артефакты.Сафари не застрахован;ничего нет.

...