c++ - 我如何摆脱 Gtkmm 中的模糊像素?

标签 c++ pixel cairo gtkmm

当我绘制图片并放大时,GTKmm(或者我想是 Cairo)将像素混合在一起以形成漂亮的平滑图像。我真的很讨厌那个。这对调试来说很糟糕。我想看到清晰锐利的像素和清晰的图像。我想看到漂亮的小方 block 。那么如何关闭酷炫的混合功能呢?

这是我绘制图像的方式。

Gdk::Cairo::set_source_pixbuf(cairoContext, tile->tileImage, tile->x, tile->y);
cairoContext->paint();

还尝试填充以查看是否有任何不同。

Gdk::Cairo::set_source_pixbuf(cairoContext, tile->tileImage, tile->x, tile->y);
cairoContext->rectangle(tile->x, tile->y, tile->tileImage->get_width(), tile->tileImage->get_height());
cairoContext->fill();

不是。

编辑: 这不起作用:

cairoContext->set_antialias(Cairo::Antialias::ANTIALIAS_NONE);

最佳答案

您需要在模式上设置一个NEAREST 过滤器。我不确定用于此的 C++ API,但在 C 中我会执行以下操作(在调用 set_source_pixbuf 之后):

cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_NEAREST);

关于c++ - 我如何摆脱 Gtkmm 中的模糊像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55953621/

相关文章:

python - 在 PyGobject 中绘图 (python3)

python - pycairo : justify text-align

c++ - 开罗:重新填充对象(圆圈)并将其删除

c++ - 在嵌套模板中使用类成员指针会导致 GCC 错误 "mismatched types Child and Base"

c++ - 如何在 SQLite 数据库中存储枚举

c++ - 在 vector 图上使用 initializer_list

R:覆盖栅格图层的xy坐标

c++ - 如何使用 strip 化算法读取 residence.dat 文件 C++

java - 处理中的变形图像效果

iphone - 如何在 iPhone 上绘制单个像素?