我需要一种方法来调整 UIImage 的大小,就像在 Photoshop 中使用“最近邻”重采样一样。我一直在寻找一些,但我发现的所有内容都是关于 CoreGraphics 厚度以提高双三次重采样质量。我的应用程序中有像素风格的设计,我按像素创建了很多东西,然后用 x5 乘数放大(这需要很多时间,所以我什至接近为 Photoshop 编写脚本)。例如:
>
但我真的不需要这样的重采样结果:
也许有人会告诉我正确的方法。
我需要一种方法来调整 UIImage 的大小,就像在 Photoshop 中使用“最近邻”重采样一样。我一直在寻找一些,但我发现的所有内容都是关于 CoreGraphics 厚度以提高双三次重采样质量。我的应用程序中有像素风格的设计,我按像素创建了很多东西,然后用 x5 乘数放大(这需要很多时间,所以我什至接近为 Photoshop 编写脚本)。例如:
>
但我真的不需要这样的重采样结果:
也许有人会告诉我正确的方法。
当您将图像绘制到图形上下文中时,您可以将图形上下文的插值质量设置为“无”,如下所示(例如在视图的drawRect
方法中):
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetInterpolationQuality(c, kCGInterpolationNone);
UIImage *image = [UIImage imageNamed:@"pixels.png"];
[image drawInRect:self.bounds];
如果您需要将结果作为一个UIImage
(例如,将其分配给内置的 UI 控件),您可以这样做UIGraphicsBeginImageContext
(您会找到很多示例)。
另一种方法是设置magnificationFilter
图像视图层的属性:
pixelatedImageView.layer.magnificationFilter = kCAFilterNearest;
这可能更快,内存效率更高,因为您不需要重绘图像。