apeter_2000 发表于 2005-11-6 10:42:56

求fontconfig 配置代码:怎样给中文斜体打开AA?

如题。

mandrakechina 发表于 2005-11-6 11:16:46

你必须使用Firefly给libxft打的补丁,embedbitmap那个。然后不要在fontconfig中设置关AA就行了。

apeter_2000 发表于 2005-11-6 17:41:07

你必须使用Firefly给libxft打的补丁,embedbitmap那个。然后不要在fontconfig中设置关AA就行了。
Hello, Mr Wang! :D

对于9-12号的宋体,肯定要关闭AA。这样才清晰。
其他字体各种字号的AA我都打开了。

现在要做的是:
把宋体的斜体字型打开AA,常规字型9-12号依然关闭AA。
这在fontconfig里面怎么写?

斜体我用的是sunmoon 的 cairo 补丁,斜体不加AA就破碎不堪。

cnhnln 发表于 2005-11-6 21:02:53


<match target="font">
        <test target="pattern" name="slant" compare="eq"><const>roman</const></test>
        <test target="pattern" name="slant" compare="eq"><const>oblique</const></test>
        <edit name="antialias" mode="assign"><bool>true</bool></edit>
</match>

我瞎猜的,不一定准阿,呵呵

apeter_2000 发表于 2005-11-6 22:03:05

专家 3n 来了,我去试试看。

apeter_2000 发表于 2005-11-6 22:30:35

好像不行!


<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

      <!--
                Fonts for which antialiasing has to be disabled at small sizes
      -->
      <match target="font">
                <test name="family">
                        <string>Raghindi</string>
                </test>
                <test name="size" compare="less">
                        <double>11</double>
                </test>
                <edit name="antialias">
                        <bool>false</bool>
                </edit>
      </match>

      <match target="font">
                <test name="family" qual="any">
                        <string>AR PL New Sung</string>
                        <string>SimSun</string>
                        <string>NSimSun</string>
                        <string>MingLiu</string>
                        <string>PMingLiu</string>
                </test>
                <test name="pixelsize" compare="less_eq">
                        <double>12</double>
                </test>
                <edit name="pixelsize" mode="assign">
                        <double>12</double>
                </edit>
      </match>

      <match target="font">
                <test name="family" qual="any">
                        <string>AR PL New Sung</string>
                        <string>SimSun</string>
                        <string>NSimSun</string>
                        <string>MingLiu</string>
                        <string>PMingLiu</string>
                </test>
                <test name="pixelsize" compare="less_eq">
                        <double>16</double>
                </test>
                        <edit name="antialias">
                        <bool>false</bool>
                </edit>
      </match>

      <!--
                Yet, the slant fonts look better when antialiased
      -->
      <match target="font">
                <test name="family" qual="any">
                        <string>AR PL New Sung</string>
                        <string>SimSun</string>
                        <string>NSimSun</string>
                        <string>MingLiu</string>
                        <string>PMingLiu</string>
                </test>
                <test target="pattern" name="slant" compare="eq">
                        <const>roman</const>
                </test>
                <test target="pattern" name="slant" compare="eq">
                        <const>oblique</const>
                </test>
                <edit name="antialias" mode="assign">
<!--
                Yet, the slant fonts look better when antialiased
      -->
      <match target="font">
                <test name="family" qual="any">
                        <string>AR PL New Sung</string>
                        <string>SimSun</string>
                        <string>NSimSun</string>
                        <string>MingLiu</string>
                        <string>PMingLiu</string>
                </test>
                <test target="pattern" name="slant" compare="eq">
                        <const>roman</const>
                </test>
                <test target="pattern" name="slant" compare="eq">
                        <const>oblique</const>
                </test>
                <edit name="antialias" mode="assign">
                        <bool>true</bool>
                </edit>
      </match>

</fontconfig>

cnhnln 发表于 2005-11-6 23:26:50

<match target="font">
   <test target="pattern" name="slant" compare="eq"><const>oblique</const></test>
   <edit name="antialias" mode="assign"><bool>true</bool></edit>
</match>


<match target="font">
   <test target="pattern" name="slant" compare="eq"><const>roman</const></test>
   <edit name="antialias" mode="assign"><bool>true</bool></edit>
</match>

拆开写试试看

sunmoon1997 发表于 2005-11-7 07:29:26

你必须使用Firefly给libxft打的补丁,embedbitmap那个。然后不要在fontconfig中设置关AA就行了。
Hello, Mr Wang! :D

对于9-12号的宋体,肯定要关闭AA。这样才清晰。
其他字体各种字号的AA我都打开了。

现在要做的是:
把宋体的斜体字型打开AA,常规字型9-12号依然关闭AA。
这在fontconfig里面怎么写?

斜体我用的是sunmoon 的 cairo 补丁,斜体不加AA就破碎不堪。
?新的补丁是这样的。。

apeter_2000 发表于 2005-11-7 10:21:26

<match target="font">
   <test target="pattern" name="slant" compare="eq"><const>oblique</const></test>
   <edit name="antialias" mode="assign"><bool>true</bool></edit>
</match>


<match target="font">
   <test target="pattern" name="slant" compare="eq"><const>roman</const></test>
   <edit name="antialias" mode="assign"><bool>true</bool></edit>
</match>

拆开写试试看
有效! :lol:
只要代码的前一部分就可以了,后一个roman把一般的字型的AA也打开了。

apeter_2000 发表于 2005-11-7 10:24:19

你必须使用Firefly给libxft打的补丁,embedbitmap那个。然后不要在fontconfig中设置关AA就行了。
Hello, Mr Wang! :D

对于9-12号的宋体,肯定要关闭AA。这样才清晰。
其他字体各种字号的AA我都打开了。

现在要做的是:
把宋体的斜体字型打开AA,常规字型9-12号依然关闭AA。
这在fontconfig里面怎么写?

斜体我用的是sunmoon 的 cairo 补丁,斜体不加AA就破碎不堪。
?新的补丁是这样的。。
没有你的好看啊。
我用的是这个补丁:cairo-1.0.0-ft-font.patch

diff -up cairo-1.0.0.orig/src/cairo-ft-font.c cairo-1.0.0/src/cairo-ft-font.c
--- cairo-1.0.0.orig/src/cairo-ft-font.c      2005-09-18 09:47:09.000000000 +0800
+++ cairo-1.0.0/src/cairo-ft-font.c   2005-10-19 15:39:17.000000000 +0800
@@ -1207,7 +1207,8 @@ _cairo_ft_unscaled_font_create_glyph (vo
   FT_Glyph_Metrics *metrics;
   cairo_status_t status = CAIRO_STATUS_SUCCESS;
   double x_factor, y_factor;
-
+    int load_flags = val->key.flags & ~PRIVATE_FLAGS_MASK;
+
   face = _cairo_ft_unscaled_font_lock_face (unscaled);
   if (!face)
      return CAIRO_STATUS_NO_MEMORY;
@@ -1217,7 +1218,10 @@ _cairo_ft_unscaled_font_create_glyph (vo

   _cairo_ft_unscaled_font_set_scale (unscaled, &val->key.scale);

-    if (FT_Load_Glyph (face, val->key.index, val->key.flags & ~PRIVATE_FLAGS_MASK) != 0) {
+    if (unscaled->have_shape)
+       load_flags |= FT_LOAD_NO_BITMAP;
+
+    if (FT_Load_Glyph (face, val->key.index, load_flags) != 0) {
      status = CAIRO_STATUS_NO_MEMORY;
      goto FAIL;
   }


我现在的cairo版本是1.0.2。

sunmoon1997 发表于 2005-11-7 10:27:35

你必须使用Firefly给libxft打的补丁,embedbitmap那个。然后不要在fontconfig中设置关AA就行了。
Hello, Mr Wang! :D

对于9-12号的宋体,肯定要关闭AA。这样才清晰。
其他字体各种字号的AA我都打开了。

现在要做的是:
把宋体的斜体字型打开AA,常规字型9-12号依然关闭AA。
这在fontconfig里面怎么写?

斜体我用的是sunmoon 的 cairo 补丁,斜体不加AA就破碎不堪。
?新的补丁是这样的。。
没有你的好看啊。
我用的是这个补丁:cairo-1.0.0-ft-font.patch

diff -up cairo-1.0.0.orig/src/cairo-ft-font.c cairo-1.0.0/src/cairo-ft-font.c
--- cairo-1.0.0.orig/src/cairo-ft-font.c      2005-09-18 09:47:09.000000000 +0800
+++ cairo-1.0.0/src/cairo-ft-font.c   2005-10-19 15:39:17.000000000 +0800
@@ -1207,7 +1207,8 @@ _cairo_ft_unscaled_font_create_glyph (vo
   FT_Glyph_Metrics *metrics;
   cairo_status_t status = CAIRO_STATUS_SUCCESS;
   double x_factor, y_factor;
-
+    int load_flags = val->key.flags & ~PRIVATE_FLAGS_MASK;
+
   face = _cairo_ft_unscaled_font_lock_face (unscaled);
   if (!face)
      return CAIRO_STATUS_NO_MEMORY;
@@ -1217,7 +1218,10 @@ _cairo_ft_unscaled_font_create_glyph (vo

   _cairo_ft_unscaled_font_set_scale (unscaled, &val->key.scale);

-    if (FT_Load_Glyph (face, val->key.index, val->key.flags & ~PRIVATE_FLAGS_MASK) != 0) {
+    if (unscaled->have_shape)
+       load_flags |= FT_LOAD_NO_BITMAP;
+
+    if (FT_Load_Glyph (face, val->key.index, load_flags) != 0) {
      status = CAIRO_STATUS_NO_MEMORY;
      goto FAIL;
   }


我现在的cairo版本是1.0.2。
用这个。
http://www.magiclinux.org/people/sunmoon1997/patches/cairo/cairo-ft-font-transform-bitmap.diff

apeter_2000 发表于 2005-11-7 10:32:52

多谢 :mrgreen:

cnhnln 发表于 2005-11-7 12:29:23

<match target="font">
   <test target="pattern" name="slant" compare="eq"><const>oblique</const></test>
   <edit name="antialias" mode="assign"><bool>true</bool></edit>
</match>


<match target="font">
   <test target="pattern" name="slant" compare="eq"><const>roman</const></test>
   <edit name="antialias" mode="assign"><bool>true</bool></edit>
</match>

拆开写试试看
有效! :lol:
只要代码的前一部分就可以了,后一个roman把一般的字型的AA也打开了。
呵呵,应该是 Italic:oops:

Freezesnake 发表于 2005-11-14 11:46:26

我把GTK升级到2.8.6,firefox升级到1.5-rc1,cairo用的是1.0.2,然后simsun也好,tahoma也好,英文粗体都极其难看,请问该怎么办?

mandrakechina 发表于 2005-11-14 18:27:25

请用sunmonn的cairo-all-in-one.patch
页: [1] 2
查看完整版本: 求fontconfig 配置代码:怎样给中文斜体打开AA?