QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3417|回复: 19

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

[复制链接]
发表于 2005-11-6 10:42:56 | 显示全部楼层 |阅读模式
如题。
发表于 2005-11-6 11:16:46 | 显示全部楼层
你必须使用Firefly给libxft打的补丁,embedbitmap那个。然后不要在fontconfig中设置关AA就行了。
回复

使用道具 举报

 楼主| 发表于 2005-11-6 17:41:07 | 显示全部楼层
[quote:c310df6a75="mandrakechina"]你必须使用Firefly给libxft打的补丁,embedbitmap那个。然后不要在fontconfig中设置关AA就行了。[/quote]
Hello, Mr Wang! :D

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

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

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

使用道具 举报

发表于 2005-11-6 21:02:53 | 显示全部楼层
[code:1]
<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>
[/code:1]
我瞎猜的,不一定准阿,呵呵
回复

使用道具 举报

 楼主| 发表于 2005-11-6 22:03:05 | 显示全部楼层
专家 3n 来了,我去试试看。
回复

使用道具 举报

 楼主| 发表于 2005-11-6 22:30:35 | 显示全部楼层
好像不行!

[code:1]
<?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>
[/code:1]
回复

使用道具 举报

发表于 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>

拆开写试试看
回复

使用道具 举报

发表于 2005-11-7 07:29:26 | 显示全部楼层
[quote:d0aa4daa0c="apeter_2000"][quote:d0aa4daa0c="mandrakechina"]你必须使用Firefly给libxft打的补丁,embedbitmap那个。然后不要在fontconfig中设置关AA就行了。[/quote]
Hello, Mr Wang! :D

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

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2005-11-7 10:21:26 | 显示全部楼层
[quote:9cc94d431a="cnhnln"]<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>

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

使用道具 举报

 楼主| 发表于 2005-11-7 10:24:19 | 显示全部楼层
[quote:569a4954d5="sunmoon1997"][quote:569a4954d5="apeter_2000"][quote:569a4954d5="mandrakechina"]你必须使用Firefly给libxft打的补丁,embedbitmap那个。然后不要在fontconfig中设置关AA就行了。[/quote]
Hello, Mr Wang! :D

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

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

斜体我用的是sunmoon 的 cairo 补丁,斜体不加AA就破碎不堪。[/quote]
?新的补丁是这样的。。[/quote]
没有你的好看啊。
我用的是这个补丁:cairo-1.0.0-ft-font.patch
[code:1]
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;
     }
[/code:1]

我现在的cairo版本是1.0.2。
回复

使用道具 举报

发表于 2005-11-7 10:27:35 | 显示全部楼层
[quote:0e99b0c07e="apeter_2000"][quote:0e99b0c07e="sunmoon1997"][quote:0e99b0c07e="apeter_2000"][quote:0e99b0c07e="mandrakechina"]你必须使用Firefly给libxft打的补丁,embedbitmap那个。然后不要在fontconfig中设置关AA就行了。[/quote]
Hello, Mr Wang! :D

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

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

斜体我用的是sunmoon 的 cairo 补丁,斜体不加AA就破碎不堪。[/quote]
?新的补丁是这样的。。[/quote]
没有你的好看啊。
我用的是这个补丁:cairo-1.0.0-ft-font.patch
[code:1]
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;
     }
[/code:1]

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

使用道具 举报

 楼主| 发表于 2005-11-7 10:32:52 | 显示全部楼层
多谢
回复

使用道具 举报

发表于 2005-11-7 12:29:23 | 显示全部楼层
[quote:9c6938f398="apeter_2000"][quote:9c6938f398="cnhnln"]<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>

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

使用道具 举报

发表于 2005-11-14 11:46:26 | 显示全部楼层
我把GTK升级到2.8.6,firefox升级到1.5-rc1,cairo用的是1.0.2,然后simsun也好,tahoma也好,英文粗体都极其难看,请问该怎么办?
回复

使用道具 举报

发表于 2005-11-14 18:27:25 | 显示全部楼层
请用sunmonn的cairo-all-in-one.patch
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-14 23:44 , Processed in 0.075280 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表