【发布时间】:2021-12-29 22:46:04
【问题描述】:
我想使用最近邻缩放从最小尺寸的图像有效地创建放大的 CIImage。
假设我想创建任意分辨率的图像,例如这些 EBU 彩条:
在像 OpenGL 这样的框架中,我们可以存储这个微小的 8x1 像素纹理并将其渲染为任意大小的四边形,只要我们使用最近邻缩放,生成的图像就很清晰。
我们的 CIImage 选项似乎仅限于 .transformedBy(CAAffineTransform(scaleX:y:)) 和 .filteredBy(filterName: "CILanczosScaleTransform"),它们都使用平滑采样,这对于摄影图像来说是一个不错的选择,但会模糊线条图像的边缘,例如这些彩条 - 我特别想要像素化效果。
因为我试图在核心图像后端利用 GPU 处理,所以我宁愿不向进程提供已经放大的位图图像(例如,使用 CGImage)
有没有办法告诉 Core Image 使用最近邻采样,或者编写一个自定义的 CIImage 子类来实现这一点?
【问题讨论】:
标签: swift core-image