Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用cairo进行字体平滑_C_Firefox_Fonts_Antialiasing_Cairo - Fatal编程技术网

使用cairo进行字体平滑

使用cairo进行字体平滑,c,firefox,fonts,antialiasing,cairo,C,Firefox,Fonts,Antialiasing,Cairo,我正在尝试使用抗锯齿平滑文本渲染。 但它不是抗锯齿的 第一行是使用pango和cairo创建的png图像。 第二行只是一个html标记。它在firefox、Ubuntu和Gnome DE中。 比较“W”和“v”可以更好地理解两者的区别 在两行之间 可在上找到负责绘制文本的代码 字体选项设置在第17行和第20行,如下所示: // setting up antialiasing cairo_font_options_set_antialias(cfo, CAIRO_ANTIALIAS_GRAY)

我正在尝试使用抗锯齿平滑文本渲染。 但它不是抗锯齿的

第一行是使用pango和cairo创建的png图像。 第二行只是一个html
标记。它在firefox、Ubuntu和Gnome DE中。 比较“W”和“v”可以更好地理解两者的区别 在两行之间

可在上找到负责绘制文本的代码 字体选项设置在第17行和第20行,如下所示:

// setting up antialiasing
cairo_font_options_set_antialias(cfo, CAIRO_ANTIALIAS_GRAY);

// set the font options to cairo
cairo_set_font_options(this->cro, cfo);
谁能告诉我怎么才能使这两条线看起来一样


你自找的,你得到了。要获得匹配,你需要CAIRO\u antialas\u子像素。但是,当您将文本绘制到可能在另一台计算机上显示的图像时,这是不合适的。无法保证该机器上的显示器是一个带有RGB条纹的LCD面板,其顺序是可预测的。或者说它是横向的。或者它以精确的原始大小显示。当出现不匹配时,文本看起来会很差。

我将使用此代码在运行Debian lenny的服务器中生成图像。人们会在显示器上看到这一点。我也不知道他们会用哪台显示器。因此,从您的回答来看,在我看来,如果使用VRGB,生成的图像将在与VRGB兼容的显示器中看起来是抗锯齿的。在其他显示器上会很难看。我说的对吗?你所拥有的是正确的。与此相比:Firefox也是首先决定我的显示类型的。然后使用兼容的亚像素抗锯齿选项。如果有的话。我如何知道firefox使用的是哪种抗别名选项?我如何在我的脚本中模拟相同的行为,以便至少在我的pc中我可以看到它正确地消除了锯齿。是的,firefox使用亚像素插值渲染文本没有问题,它在显示文本的机器上运行。您的web服务器无法知道,它位于错误的一端,无法询问浏览器。如果您希望浏览器呈现文本,那么您必须生成HTML,而不是图像。感谢Hans清除所有内容。我还有一个问题。当我生成图像时,它的md5不会改变。无论我使用什么亚像素方法,它都不会改变图像的md5。所以,似乎有些抗锯齿机制没有被cairo执行
cairo_font_options_set_antialias(cfo, CAIRO_ANTIALIAS_GRAY);