当前时区 GMT+8, 现在时间是 2008-8-22 06:33 游客: 注册 登录 仅登录论坛 | 搜索 帮助


标题: 提一个cairo的斜体解决方案
Mikeandmore
高级会员
Rank: 4



UID 192985
精华 1
积分 1083
帖子 464
阅读权限 50
注册 2005-6-11
状态 离线
发表于 2005-9-17 18:29  资料  短消息  加为好友  添加 Mikeandmore 为MSN好友 通过MSN和 Mikeandmore 交谈
我的意思是FC类

即:
fedora core
mandrake
suse
redhat
magic linux
这一类发型版





Mike
顶部
Mikeandmore
高级会员
Rank: 4



UID 192985
精华 1
积分 1083
帖子 464
阅读权限 50
注册 2005-6-11
状态 离线
发表于 2005-9-17 18:36  资料  短消息  加为好友  添加 Mikeandmore 为MSN好友 通过MSN和 Mikeandmore 交谈
目前粗体早就搞定

斜体有问题

if (val->key.flags & PRIVATE_FLAG_OBLIQUE &&
        (face->style_flags & FT_STYLE_FLAG_ITALIC) == 0) {
        FT_GlyphSlot_Oblique (glyphslot);
}

...

FcBool embolden=FcFalse;

        int w=-1;

        /*if (FcPatternGetBool (pattern,
                              FC_EMBOLDEN, 0, &embolden) != FcResultMatch)
            embolden = FcFalse;*/
        if (FcPatternGetInteger (pattern,FC_WEIGHT, 0, &w) != FcResultMatch) embolden = FcFalse;
        if(w==FC_WEIGHT_BOLD) embolden=FcTrue;

        if (embolden)
            load_flags |= PRIVATE_FLAG_EMBOLDEN;
    }


看上去ok吧
但是在freetype中
  FT_EXPORT_DEF( void )
  FT_GlyphSlot_Oblique( FT_GlyphSlot  slot )
  {
    FT_Matrix    transform;
    FT_Outline*  outline = &slot->outline;


    /* only oblique outline glyphs */
    if ( slot->format != FT_GLYPH_FORMAT_OUTLINE )
      return;

    /* we don't touch the advance width */

    /* For italic, simply apply a shear transform, with an angle */
    /* of about 12 degrees.                                      */

    transform.xx = 0x10000L;
    transform.yx = 0x00000L;

    transform.xy = 0x06000L;
    transform.yy = 0x10000L;

    FT_Outline_Transform( outline, &transform );
}
所以必须对FT_GLYPH_FORMAT_BITMAP进行斜体算法
我目前没有什么办法,也许请教以下firefly。他patch过freetype





Mike
顶部
mandrakechina
金牌会员
Rank: 8Rank: 8


UID 12345
精华 9
积分 8659
帖子 3868
阅读权限 90
注册 2003-1-12
来自 北京
状态 离线
发表于 2005-9-17 19:03  资料  主页 短消息  加为好友 
小字号的斜体,根本就看不清楚。





真男人张湘祥
顶部
Mikeandmore
高级会员
Rank: 4



UID 192985
精华 1
积分 1083
帖子 464
阅读权限 50
注册 2005-6-11
状态 离线
发表于 2005-9-18 16:47  资料  短消息  加为好友  添加 Mikeandmore 为MSN好友 通过MSN和 Mikeandmore 交谈
果真如此。。。

大概是 transform的值的问题





Mike
顶部
jcome
公社版主



UID 4161
精华 10
积分 2778
帖子 1335
阅读权限 225
注册 2002-10-25
来自 Work Song...
状态 离线
发表于 2005-9-18 19:57  资料  主页 短消息  加为好友 
[quote:27c6ea77e1="Mikeandmore"]果真如此。。。

大概是 transform的值的问题[/quote]

是不是把你的标题改改





顶部
Mikeandmore
高级会员
Rank: 4



UID 192985
精华 1
积分 1083
帖子 464
阅读权限 50
注册 2005-6-11
状态 离线
发表于 2005-9-19 18:32  资料  短消息  加为好友  添加 Mikeandmore 为MSN好友 通过MSN和 Mikeandmore 交谈
对!谢谢提醒,跑了





Mike
顶部
yangh
公社版主



UID 40061
精华 3
积分 3197
帖子 1635
阅读权限 225
注册 2003-5-26
来自 China
状态 离线
发表于 2005-9-19 21:20  资料  主页 短消息  加为好友 
首先,可以肯定我的系统里粗斜体都没有问题,粗体是 sunmoon 提交的补丁后才有的,斜体则是打我的补丁后出来的,我的补丁在

http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=128453&start=30

http://www.linuxfans.org/nuke/modules/Forums/files/cairo-ft-oblique-fix.diff

并不是只有楼主贴的那几行。

现在 cvs 里的 cairo 似乎还没收这个补丁。



 附件: 您所在的用户组无法下载或查看附件




顶部
mandrakechina
金牌会员
Rank: 8Rank: 8


UID 12345
精华 9
积分 8659
帖子 3868
阅读权限 90
注册 2003-1-12
来自 北京
状态 离线
发表于 2005-9-19 22:45  资料  主页 短消息  加为好友 
拜托,您老人家得自己去跟cairo的人说要收入这个补丁。cairo的人不会自发的满世界搜索补丁 :D

另外,好像你的补丁会使得cairo在build的时候依赖autoconf和automake。不过确实如Mikeandmore所说,虽然小字号的斜体根本就看不清楚,但可能应该还是有这个功能比较好。





真男人张湘祥
顶部
sunmoon1997
公社版主



UID 56569
精华 4
积分 3619
帖子 1985
阅读权限 225
注册 2003-8-21
来自 China
状态 离线
发表于 2005-9-20 01:53  资料  主页 短消息  加为好友  QQ
这是我的方案对 fontconfig 和 cairo 同时动了一下手术:D
cairo-1.0 的的要相应的改一下:D
ps. fontconfig 部分实际是 frefly 写的。
fontconfig-2.3.2-prefer-localized-family-name.patch  与斜体并不相关, 是让 fontconfig 显示本地化字体名的, 一起送上了,呵呵



 附件: 您所在的用户组无法下载或查看附件




偷来的签名: [code:1] USE="-bitch -in-laws nice gorgeous smart" emerge girlfriend >>> china/suzhou/girlfriend merged [/code:1]
顶部
Mikeandmore
高级会员
Rank: 4



UID 192985
精华 1
积分 1083
帖子 464
阅读权限 50
注册 2005-6-11
状态 离线
发表于 2005-9-20 18:47  资料  短消息  加为好友  添加 Mikeandmore 为MSN好友 通过MSN和 Mikeandmore 交谈
问yaugh:
你的补丁中FC_OBLIQUE的定义是什么???

在哪里有它的定义?




文鼎pl的字体我都试过  有斜体!!!

simsun没有!

sunmoon1997的补丁也许是对的。





Mike
顶部
Mikeandmore
高级会员
Rank: 4



UID 192985
精华 1
积分 1083
帖子 464
阅读权限 50
注册 2005-6-11
状态 离线
发表于 2005-9-20 18:49  资料  短消息  加为好友  添加 Mikeandmore 为MSN好友 通过MSN和 Mikeandmore 交谈
我的思路是再patch一下freetype





Mike
顶部
 


Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 中国Linux公社 - WAP