Какао-Touch: Как установить качество интерполяции для использования UIImageView? - PullRequest
4 голосов
/ 01 ноября 2009

У меня есть UIImageView, показывающее изображение, которое больше его рамки.
Это установлено, чтобы изменить масштаб изображения, чтобы соответствовать его кадру. Но изображение масштабируется с помощью фильтра низкого качества.

Я прочитал здесь , что это вызвано тем, что он использует низкое качество интерполяции.

Как мне получить его контекст от CGContextSetInterpolationQuality до kCGInterpolationHigh?

Ответы [ 3 ]

2 голосов
/ 29 июля 2014

Из " UIImageView масштабирования / интерполяции " это наиболее удобный способ сделать это, если вы можете:

[[yourimageview layer] setMagnificationFilter:kCAFilterTrilinear]

Обязательно #import <QuartzCore/CALayer.h>

Предупреждение на kCAFilterTrilinear: «Некоторые средства визуализации могут игнорировать это или накладывать дополнительные ограничения, такие как исходные изображения, требующие измерения степени двух.»

1 голос
/ 01 ноября 2009

UIImageView не предлагает эту функциональность, хотя UIImage имеет недокументированный метод _imageScaledToSize:interpolationQuality:, если я правильно помню.

Поскольку UIImageView рисует непосредственно на дисплей, подклассы и переопределение drawRect: не подходят (спасибо Prody за то, что указал на это). Единственный вариант, который я вижу, - это создание пользовательского подкласса UIView с пользовательской реализацией drawrect:.

1 голос
/ 01 ноября 2009

CGContextSetInterpolationQuality - это функция. Вы должны вызывать его с любыми параметрами, подходящими для вашей ситуации.

http://developer.apple.com/mac/library/qa/qa2001/qa1186.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...