我有UIImageView
显示的图像比它的框架大。
它设置为重新缩放图像以适合它的帧。但是,图像使用低质量滤镜进行缩放。
我read here这是由于它使用低插值质量造成的。
如何将CGContextSetInterpolationQuality
转换为kCGInterpolationHigh
?
答案 0 :(得分:2)
从“UIImageView scaling/interpolation”开始,如果可以的话,这是最简化的方法:
[[yourimageview layer] setMagnificationFilter:kCAFilterTrilinear]
请务必#import <QuartzCore/CALayer.h>
关于kCAFilterTrilinear的警告:“某些渲染器可能会忽略这一点,或施加其他限制,例如需要二维幂的源图像。”
答案 1 :(得分:1)
CGContextSetInterpolationQuality是一个函数。您需要使用适合您情况的任何参数调用它。
http://developer.apple.com/mac/library/qa/qa2001/qa1186.html
答案 2 :(得分:1)
UIImageView不提供此功能,但如果我没记错的话,UIImage有一个未记录的_imageScaledToSize:interpolationQuality:
方法。
由于UIImageView直接绘制到显示,因此子类化和覆盖drawRect:
是没有选择的(感谢Prody指出这一点)。我看到的唯一选择是使用自定义drawrect:
实现创建自定义UIView子类。