我的问题是,虽然根据node-canvas和cario (画布背后的图形库),默认情况下应该执行反走样,但似乎没有发生反走样。此外,可以使用这个systex ctx.antialias = 'gray';来控制according to node-canvas抗锯齿,但它似乎也不能做任何事情。有没有办法直接使用node-canvas甚至cairo来为图像转换添加抗锯齿功能?
发布于 2013-02-14 16:08:01
当放大模式时,cairo默认使用双线性插值,这看起来应该是合理的。但是,在缩小比例时,cairo当前(从1.12.14起)不能正确使用抗锯齿模式。除了将该功能实际添加到cairo本身之外,没有办法做到这一点,尽管请参阅下面的潜在解决方法。
cairo中的“抗锯齿”设置控制光栅化形状和文本的抗锯齿,而不是模式。控制patterns抗锯齿的设置称为'cairo_pattern_set_filter‘,具有下列值:
CAIRO_FILTER_FAST, // usually the same as NEAREST
CAIRO_FILTER_GOOD, // usually the same as BILINEAR
CAIRO_FILTER_BEST, // usually the same as BILINEAR
CAIRO_FILTER_NEAREST, // for upscaling, this is pixel-replication
CAIRO_FILTER_BILINEAR, // for upscaling, this is linear interpolation
CAIRO_FILTER_GAUSSIAN // not implemented, should not be used但正如前面提到的,它们都不能很好地缩小规模。
一些人使用的一种解决方法是将图像按2步缩小。也就是说,将图像缩小到两个维度的一半,直到它大致达到所需的大小。然后,可以将该缩小的图像与缩小到2以下的修改后的变换一起使用。
https://stackoverflow.com/questions/14748536
复制相似问题