第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

教你用go freetype根據(jù)用戶昵稱生成頭像

標(biāo)簽:
Go

最近需要为用户服务添加一些新功能,其中就包括在注册时根据用户昵称生成头像这一点。

由于用户服务是用golang写的,google来google去都只找到freetype一个比较简单好用的库,其他比如ImageMagicK之类api都过于低层不适合我们这样相对简单的图片生成需求。

那说干就干,在go freetype仓库里找了个 example  就开始撸。

首先将又长又臭的这个example重新组织为几个函数,再按照我的需求修改一些参数……(想知道重构后的代码时什么样的话,请直接下拉,查看我封装的类库仓库地址。)

撸了一下午之后得到了我想要的结果,先贴两张图给大伙瞧瞧。

(数字)

(英文)

(汉字)

 

由于这个小功能挺有意思,觉得以后会用到所以把它稍微封装了一下放到了仓库里——AvatarBuilder,点我访问

 

用法


 

首先安装:

1go get -u github.com/ShiningRush/avatarbuilder

 

然后使用,代码片段如下(golang):

 

复制代码

    // init avatarbuilder, you need to tell builder ttf file and how to alignment text
    ab := avatarbuilder.NewAvatarBuilder("./SourceHanSansSC-Medium.ttf", &calc.SourceHansSansSCMedium{})
    ab.SetBackgroundColorHex(colors[1])
    ab.SetFrontgroundColor(color.White)
    ab.SetFontSize(80)
    ab.SetAvatarSize(200, 200)    if err := ab.GenerateImageAndSave("12", "./out.png"); err != nil {
        fmt.Println(err)        return
    }

复制代码

 

完整的例子可以在仓库的example里看到:点击查看

你可以按照你的需求设置头像的宽高以及字体大小和字体文件,需要注意的是,目前该库只实现了一个免费开源的字体文件——思源。

因为每个字体文件的宽高都有点差异,所以当你引入新的字体时也需要拓展一个新的算法来告诉如何生成居中的文字。

可以参考 calc 文件夹下的实现。

以上,希望对以后有相同需求的同学有帮助。

(很遗憾,最近在写go和python比较多,所以没有c#的实现版本,幸运的是,c#在图形处理方面的库本就不少,资料很全完全不用操心。)

原文出处:https://www.cnblogs.com/RobotZero/p/9692075.html  

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消