V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
chendahui007
V2EX  ›  Go 编程语言

Go 语言实现的 首字母头像 服务/库

  •  
  •   chendahui007 · 2015-11-15 18:43:27 +08:00 · 2897 次点击
    这是一个创建于 3295 天前的主题,其中的信息可能已经有所发展或是发生改变。
    repo: https://github.com/holys/initials-avatar
    既可以当库来使用,也可以当作 HTTP 服务来跑。

    欢迎吐槽 :)
    41 条回复    2015-11-18 19:09:50 +08:00
    hack
        1
    hack  
       2015-11-15 20:10:06 +08:00
    默默点了下 star 应该不是手抖
    chendahui007
        2
    chendahui007  
    OP
       2015-11-15 20:29:27 +08:00
    @hack thx :)
    raysmond
        3
    raysmond  
       2015-11-15 21:41:46 +08:00
    这东西是不是用 html5 或 svg 前端画出来是不是更好?
    imxieke
        4
    imxieke  
       2015-11-15 21:42:05 +08:00   ❤️ 1
    第一百位小伙伴 !
    chendahui007
        5
    chendahui007  
    OP
       2015-11-15 22:09:09 +08:00
    @raysmond 是的。 会轻量些。 但是如果希望各个端统一方案, 偏服务端的方案会合适些,不然 iOS , Android , web 前端都得自己实现一套?
    raysmond
        6
    raysmond  
       2015-11-15 23:15:08 +08:00
    @chendahui007 也不错
    Unknwon
        7
    Unknwon  
       2015-11-16 02:53:59 +08:00
    已 star 。中文的字体库有点大。。能不能只用英文不用的中文的?
    lincanbin
        8
    lincanbin  
       2015-11-16 08:18:45 +08:00
    我有个类似的,但是很久以前用 PHP 做的,直接服务端生成头像文件,还切圆了。
    https://github.com/lincanbin/Material-Design-Avatars
    Chappako
        9
    Chappako  
       2015-11-16 08:42:35 +08:00
    @lincanbin 切圆了这活交给 css 做不是更好么?
    lincanbin
        10
    lincanbin  
       2015-11-16 09:09:41 +08:00
    @Chappako 追求一致性,如果前端要切圆, Android 客户端也要切圆, iOS 端也要切,为何不在服务器端生成时做好呢?
    一次生成,就节省了用户不少渲染时间。
    chendahui007
        11
    chendahui007  
    OP
       2015-11-16 09:14:24 +08:00
    @lincanbin 有道理。 不过切圆这事儿,应该作为参数可选,不应强制
    jsfaint
        12
    jsfaint  
       2015-11-16 09:16:38 +08:00   ❤️ 1
    @Unknwon 用了好久 gogs ,感谢!
    timothyye
        13
    timothyye  
       2015-11-16 10:06:31 +08:00
    已 star
    yougg
        14
    yougg  
       2015-11-16 10:40:01 +08:00
    @lincanbin 请问能切 滚刀片 吗?
    sevncz
        15
    sevncz  
       2015-11-16 10:50:50 +08:00
    star
    LXJ
        16
    LXJ  
       2015-11-16 10:51:37 +08:00
    赞赞
    pubby
        17
    pubby  
       2015-11-16 11:04:20 +08:00 via Android
    看了一下代码,字体 y 轴坐标计算是否有问题?
    chendahui007
        18
    chendahui007  
    OP
       2015-11-16 11:05:18 +08:00
    @pubby PR please
    mahone3297
        19
    mahone3297  
       2015-11-16 12:24:15 +08:00
    AntiMage
        20
    AntiMage  
       2015-11-16 13:00:02 +08:00
    mark 一下
    Comdex
        21
    Comdex  
       2015-11-16 14:02:13 +08:00
    推荐一下我用 go 写的小玩意图像处理工具库 imgo: http://github.com/Comdex/imgo
    chendahui007
        22
    chendahui007  
    OP
       2015-11-16 14:35:26 +08:00 via iPhone
    @Comdex cool
    4641585
        23
    4641585  
       2015-11-16 14:56:46 +08:00
    浓浓的 safari 感。。
    chendahui007
        24
    chendahui007  
    OP
       2015-11-16 15:25:00 +08:00
    @4641585 怎解?
    4641585
        25
    4641585  
       2015-11-16 18:24:30 +08:00
    在 safari 书签中的链接,如果 safari 获取不到 favicon.co 就会变成这样。。

    ![img]( http://i5.tietuku.com/fef606e29281b545.png)
    chendahui007
        26
    chendahui007  
    OP
       2015-11-16 18:37:44 +08:00
    @4641585 哈哈哈
    chendahui007
        27
    chendahui007  
    OP
       2015-11-16 18:38:44 +08:00
    @4641585 这是什么打码工具? 很好看啊
    4641585
        28
    4641585  
       2015-11-16 19:44:05 +08:00 via iPhone
    @chendahui007 photoshop …
    magicdawn
        29
    magicdawn  
       2015-11-16 20:14:34 +08:00
    我就问下

    font-size = 75.0
    然后 y := 10 + int(math.Ceil(g.fontSize*g.dpi/72))

    fontsize 设置为 75, 在 golang 中, font-size 75.0 是? px/pt ?
    然后算 y 的, 也没看懂~
    pubby
        30
    pubby  
       2015-11-16 21:26:42 +08:00   ❤️ 2
    @magicdawn 这里计算有问题的,目前内置 server 使用尺寸 120 ,看起来不太明显,用 500 的图就很明显没居中。

    需要获取这个字在对应字体文件中的 Glyph 信息计算才能得到 y ,正在写 pr
    pubby
        31
    pubby  
       2015-11-16 22:18:20 +08:00
    @magicdawn
    @chendahui007 递交了一个 pr ,最近刚做过类似的东西,刚好有垂直居中的经验。
    pubby
        32
    pubby  
       2015-11-16 22:20:58 +08:00
    @chendahui007 建议字体大小最好根据图片 size 动态调整(固定一个比例,在圆形的时候刚好落在圆内就行)
    chendahui007
        33
    chendahui007  
    OP
       2015-11-16 22:36:40 +08:00
    @pubby 这个建议好, 其实我之前也在代码里面写了 auto resize 的 TODO ,也建了 issue 。 关于图片处理的知识,还要多多向你请教!
    chendahui007
        34
    chendahui007  
    OP
       2015-11-17 00:15:40 +08:00
    @Unknwon 字体可以自己指定
    Unknwon
        35
    Unknwon  
       2015-11-17 09:28:49 +08:00
    @chendahui007 我的意思是不要字体。。莫非英文也必须带上这个字体库?
    chendahui007
        36
    chendahui007  
    OP
       2015-11-17 09:42:08 +08:00
    @Unknwon 个人认为是必须要字体库的,虽然不一定是这个字体,可以是其他的字体。 可以参考这个 example 。 https://github.com/golang/freetype/blob/master/example/drawer/main.go#L83
    lizeqiangd
        37
    lizeqiangd  
       2015-11-17 12:08:25 +08:00
    贵山员工抱团取暖的 star..... 是在下输了
    chendahui007
        38
    chendahui007  
    OP
       2015-11-17 12:27:48 +08:00
    @lizeqiangd 广东的夏天又一次击败了冬天, 不需要取暖呢 :)
    Unknwon
        39
    Unknwon  
       2015-11-17 15:25:19 +08:00
    @chendahui007 了解了。。多谢
    Hackathon
        40
    Hackathon  
       2015-11-18 16:43:40 +08:00
    chendahui007
        41
    chendahui007  
    OP
       2015-11-18 19:09:50 +08:00 via iPhone
    @Hackathon cool !
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1100 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 23:28 · PVG 07:28 · LAX 15:28 · JFK 18:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.