我有一个小型的iPhone应用程序,我正在工作,我用UIImageView显示图像。我正在使用Aspect Fit模式进行扩展。我想让图像按比例放大,无插值/平滑(我希望它看起来像素化)。有什么方法可以改变这种行为吗?UIImageView缩放/插值
更一般的问题是我可以实现我自己的缩放算法,还是有其他内置的我可以选择?
我有一个小型的iPhone应用程序,我正在工作,我用UIImageView显示图像。我正在使用Aspect Fit模式进行扩展。我想让图像按比例放大,无插值/平滑(我希望它看起来像素化)。有什么方法可以改变这种行为吗?UIImageView缩放/插值
更一般的问题是我可以实现我自己的缩放算法,还是有其他内置的我可以选择?
您需要的视图的层上magnificationFilter属性设置为最近的邻居过滤器:
[[view layer] setMagnificationFilter:kCAFilterNearest]
有两种方法可以做到这一点。你可以实现一个没有内插的重定标算法。如果这要做很多工作,您可以在另一个应用程序(如gimp或photoshop)中重新调整图像。这将工作,除非你需要在你的应用程序中动态改变大小。
确保您包括行
#import <QuartzCore/CALayer.h>
在包含该文件的顶部调用setMagnificationFilter或者它不会编译。
imageView.layer.magnificationFilter = kCAFilterNearest
imageView.layer.shouldRasterize = true
作为Rekle的人有关的回答说,请确保您使用setMagnificationFilter时添加#进口: –
2012-06-06 20:14:26
这是伟大的,达到我的目的,但我要问,当我使用`magnificationFilter = kCAFilterNearest`,这些大而锐利的像素是真正放大图像的原始像素,还是仅仅通过一些处理产生?谢谢! – Suge 2014-11-30 01:24:13