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

UIImageView масштабирование/интерполяция

У меня есть небольшое приложение IPhone, над которым я работаю, и я показываю изображение с UIImageView. Я масштабирую его, используя режим Aspect Fit. Я хотел бы, чтобы изображение масштабировалось без интерполяции/сглаживания (я хочу, чтобы он выглядел пиксельно). Есть ли способ изменить это поведение?

Чуть более общий вопрос заключается в том, можно ли реализовать собственный алгоритм масштабирования или есть другие встроенные, которые я могу выбрать?

4b9b3361

Ответ 1

Вам нужно будет установить свойство magnificationFilter на уровне представления для фильтра ближайшего соседа:

[[view layer] setMagnificationFilter:kCAFilterNearest]

Ответ 2

Убедитесь, что вы включили строку

#import  <QuartzCore/CALayer.h>

В верхней части файла, содержащего вызов setMagnificationFilter, или он не будет компилироваться.

Ответ 3

Swift

imageView.layer.magnificationFilter = kCAFilterNearest
imageView.layer.shouldRasterize = true

Ответ 4

Есть два способа сделать это. Вы можете либо реализовать масштабирующийся алгоритм без интерполяции. Если вам нужно много работать, вы можете перемасштабировать изображение в другом приложении, например gimp или photoshop. Это будет работать, если вам не потребуется динамически изменять размер вашего приложения.