2009-07-28 79 views
12

我有一个小型的iPhone应用程序,我正在工作,我用UIImageView显示图像。我正在使用Aspect Fit模式进行扩展。我想让图像按比例放大,无插值/平滑(我希望它看起来像素化)。有什么方法可以改变这种行为吗?UIImageView缩放/插值

更一般的问题是我可以实现我自己的缩放算法,还是有其他内置的我可以选择?

回答

20

您需要的视图的层上magnificationFilter属性设置为最近的邻居过滤器:

[[view layer] setMagnificationFilter:kCAFilterNearest] 
+1

作为Rekle的人有关的回答说,请确保您使用setMagnificationFilter时添加#进口: – 2012-06-06 20:14:26

+1

这是伟大的,达到我的目的,但我要问,当我使用`magnificationFilter = kCAFilterNearest`,这些大而锐利的像素是真正放大图像的原始像素,还是仅仅通过一些处理产生?谢谢! – Suge 2014-11-30 01:24:13

-2

有两种方法可以做到这一点。你可以实现一个没有内插的重定标算法。如果这要做很多工作,您可以在另一个应用程序(如gimp或photoshop)中重新调整图像。这将工作,除非你需要在你的应用程序中动态改变大小。

5

确保您包括行

#import <QuartzCore/CALayer.h> 

在包含该文件的顶部调用setMagnificationFilter或者它不会编译。

0

斯威夫特

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