我正在开发一个小型的iPhone应用程序,使用UIImageView来显示一张图片。通过使用Aspect Fit模式,我将它放大。我想让这张图片在放大时没有插值/平滑(我希望它看起来像素化)。是否有任何方法可以改变这种行为?
更一般的问题是,我是否可以实现自己的缩放算法,或者是否有其他内置的算法可供选择?
我正在开发一个小型的iPhone应用程序,使用UIImageView来显示一张图片。通过使用Aspect Fit模式,我将它放大。我想让这张图片在放大时没有插值/平滑(我希望它看起来像素化)。是否有任何方法可以改变这种行为?
更一般的问题是,我是否可以实现自己的缩放算法,或者是否有其他内置的算法可供选择?
您需要在视图的图层上设置magnificationFilter属性为最近邻过滤器:
[[view layer] setMagnificationFilter:kCAFilterNearest]
imageView.layer.magnificationFilter = kCAFilterNearest
imageView.layer.shouldRasterize = true
#import <QuartzCore/CALayer.h>
在调用setMagnificationFilter的文件顶部,否则它将无法编译。
你可以有两种方法来实现这个。你可以实现一个没有插值的重新缩放算法。如果这太麻烦了,你可以在其他应用程序中像gimp或photoshop中重新缩放图像。这将起作用,除非你需要在你的应用程序中动态改变大小。
magnificationFilter = kCAFilterNearest
时,放大的大而锐利的像素是否真的是图像的原始像素,还是由某些处理产生的?谢谢! - Suge