在开罗绘制图像时如何禁用线性插值/平滑/抗锯齿?
How to disable linear interpolation / smoothing / anti-aliasing when drawing an image in Cairo?
我想通过放大在开罗的另一个表面上绘制低分辨率图像。例如,我有一个 2x3 的图像,放大后看起来像这样:
将此图像绘制到另一个缩放级别为 10 的表面上会导致:
渲染代码紧跟this example,即所有surface/context设置都是默认的。显然,开罗默认应用一些插值。我想要的是保持原始图像的 blocky/pixelated 外观。
如何控制开罗的插值类型?在其他库中,通常有选项可以将 interpolation
设置为从 cubic
超过 linear
到 nearest
。开罗有类似的吗?
我认为您可能正在寻找类似 cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_NEAREST);
的内容。此调用将在 cairo_set_source_surface()
.
之后完成
我想通过放大在开罗的另一个表面上绘制低分辨率图像。例如,我有一个 2x3 的图像,放大后看起来像这样:
将此图像绘制到另一个缩放级别为 10 的表面上会导致:
渲染代码紧跟this example,即所有surface/context设置都是默认的。显然,开罗默认应用一些插值。我想要的是保持原始图像的 blocky/pixelated 外观。
如何控制开罗的插值类型?在其他库中,通常有选项可以将 interpolation
设置为从 cubic
超过 linear
到 nearest
。开罗有类似的吗?
我认为您可能正在寻找类似 cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_NEAREST);
的内容。此调用将在 cairo_set_source_surface()
.