【问题标题】:Nearest neighbour scaling in Core ImageCore Image 中的最近邻缩放
【发布时间】: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


    【解决方案1】:

    我认为您可以为此使用samplingNearest()

    let scaled = image.samplingNearest().transformedBy(…)
    

    【讨论】:

      猜你喜欢
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 2011-12-06
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      相关资源
      最近更新 更多