UIImageView缩放/插值

问题描述 投票:0回答:5

我正在开发一个小型 iPhone 应用程序,并且正在使用 UIImageView 显示图像。 我使用“Aspect Fit”模式将其放大。 我希望在不进行插值/平滑的情况下放大图像(我希望它看起来像素化)。 有什么办法可以改变我的这种行为吗?

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

iphone uiimageview scaling interpolation
5个回答
24
投票

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

[[view layer] setMagnificationFilter:kCAFilterNearest]

5
投票

确保包含该行

#import  <QuartzCore/CALayer.h>

位于包含对 setMagnificationFilter 的调用的文件顶部,否则无法编译。


5
投票

斯威夫特

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

0
投票

截至 2024 年,我做了一些研究。kCAFilterNearest 不再存在。改为这样做:

imageView.layer.magnificationFilter = CALayerContentsFilter.nearest

-2
投票

有两种方法可以做到这一点。您可以实现无需插值的缩放算法。如果这需要大量工作,您可以在其他应用程序(如 gimp 或 Photoshop)中重新缩放图像。除非您需要在应用程序中动态更改大小,否则这将有效。

© www.soinside.com 2019 - 2024. All rights reserved.