https://github.com/wcharczuk/go-chart/ 默认使用的字体是 roboto.Roboto,不支持中文。 

// GetDefaultFont returns the default font (Roboto-Medium).
func GetDefaultFont() (*truetype.Font, error) {
    if _defaultFont == nil {
        _defaultFontLock.Lock()
        defer _defaultFontLock.Unlock()
        if _defaultFont == nil {
            font, err := truetype.Parse(roboto.Roboto)
            if err != nil {
                return nil, err
            }
            _defaultFont = font
        }
    }
    return _defaultFont, nil
}

 

当图表上需要显示中文字体时就会显示成 X 。 如下图

这时候就要中自己的中文字体了。 下面是使用的一个简单例子。

package main

import (
    "bytes"
    "io/ioutil"
    "log"
    "os"

    "github.com/golang/freetype/truetype"
    "github.com/wcharczuk/go-chart"
    "github.com/wcharczuk/go-chart/drawing"
)

// getZWFont 加载字体
func getZWFont() *truetype.Font {

    fontFile := "/Library/Fonts/Microsoft-YaHei.ttf"
    //fontFile := "/Library/Fonts/AppleMyungjo.ttf"

    // 读字体数据
    fontBytes, err := ioutil.ReadFile(fontFile)
    if err != nil {
        log.Println(err)
        return nil
    }
    font, err := truetype.Parse(fontBytes)
    if err != nil {
        log.Println(err)
        return nil
    }
    return font
}

func drawChart() {
    //f, _ := chart.GetDefaultFont() // 自带默认字体
    f := getZWFont() // 用自己的字体
    r, _ := chart.PNG(1024, 1024)

    chart.Draw.Text(r, "Te郭红俊多多岛ddd", 64, 64, chart.Style{
        FontColor: drawing.ColorBlack,
        FontSize: 18,
        Font: f,
    })

    buffer := bytes.NewBuffer([]byte{})
    r.Save(buffer)

    fo, err := os.Create("o1.png")
    if err != nil {
        panic(err)
    }

    if _, err := fo.Write(buffer.Bytes()); err != nil {
        panic(err)
    }
}

func main() {
    drawChart()
}

 

执行生成的图片效果如下:

wcharczuk/go-chart图表上使用中文字体的更多相关文章

  1. python 在图像上写中文字体 (python write Chinese in image)

    本人处理图像的时候经常使用opencv的包,但是 cv2.putText 显示不了中文,所以查找了如何在python在图像上写中文的方法,在伟大的Stack Overflow上面找到一个方法,分享给大 ...

  2. CentOS6.5上增加中文字体库,确保前端WEB可以正常显示

    1 下载字体 可以在网上下载,也可以在 windows 目录下(C:\Windows\Fonts)找到对应字体,这里是从另一套系统上 copy simsun.ttf 文件. 2 查看当前系统中已安装的 ...

  3. CentOS 7 安装字体库 & 中文字体

    前言 报表中发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作系统是否有中文字体,在CentOS 7中发现输入命令查看字体列表是提示命令无效:  如上图可以看出,不仅没有中文字体,连字体 ...

  4. [Ubuntu]明明白白安装中文字体

    Ubuntu 6.06 dapper对中文的支持应该说是一向不错的,包括现在默认安装就包含了scim输入法.然而,一般安装的ubuntu虽然能够显示.输入中文了,但总觉 得所显示的中文像歪瓜裂枣,很是 ...

  5. Linux CentOS 7 安装字体库 & 中文字体

    前言 报表中发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作系统是否有中文字体,在CentOS 7中发现输入命令查看字体列表是提示命令无效: 如上图可以看出,不仅没有中文字体,连字体库 ...

  6. python生成word中文字体

    python生成word中文字体 我们今天用python生成word文件,主要是用到了PyRTF包生成rtf文件,由于PyRTF的包中文教程比较少,所以特此记录几篇文章,也希望给大家有一些帮助. 开始 ...

  7. Qt做发布版,解决声音和图片、中文字体乱码问题(需要在main里写上QApplication::addLibraryPath("./plugins")才能加载图片,有图片,很清楚)

    前些天做Qt发布版,发现居然不显示图片,后来才发现原来还有图片的库没加!找找吧,去qt的安装包,我装在了F盘,在F盘F:/QT/qt/plugins,找到了plugins,这里面有个 imagefor ...

  8. Saiku图表导出时中文显示问题的解决方法

    Saiku图表导出时png,jpg,pdf三种格式的中文显示都有问题,目前找到一种不太完善的解决方法(中文可以显示但不清晰),需要修改Saiku项目下的ExporterResource.java文件, ...

  9. 基于HTML5 Canvas的3D动态Chart图表

    发现现在工业SCADA上或者电信网管方面用图表的特别多,虽然绝大部分人在图表制作方面用的是echarts,他确实好用,但是有些时候我们不能调用别的插件,这个时候就得自己写这些美丽的图表了,然而图表轻易 ...

随机推荐

  1. 解决Android Screen Monitor在android8.0及以上系统报错:"E/Screenshot: Unsupported protocol: 2"

    1.打开命令窗口,切换到 asm.jar 所在目录,执行 java -jar asm.jar,正常情况下打开后连接上设备会显示出画面 2.但是在android8.0以上系统该asm.jar包就无法正常 ...

  2. Win10 中 Git clone github上内容保存到指定文件夹

    在要存储的右键→Git Bash Here 弹出命令窗口 输入 git clone 链接 很快就下载完成

  3. PHP—— 商品物流实时查询接口 (快递100API对接)

    PHP后台  与前端   对接商品物流信息的接口 运用的 快递100的API接口 public function getExpress() { $user_id = input('post.user_ ...

  4. js中获取当前url路径

    可以使用 window.location 获取当前页面url.以下是一些简单应用. <script> $(function(){ // 返回 web 主机的域名,如:http://127. ...

  5. JavaScript中使用正则表达式

    JavaScript中正则表达式的使用 创建正则对象 RegExp 对象是带有预定义属性和方法的正则表达式对象. 方式一: var reg = new RegExp("\d", ' ...

  6. [C++]Game模板-正面视角

    前言 本来是想打一个小游戏的-- 可是打到一半思路断了-- 只打出了模板--先把模板拿出来放着 Code //head #include <iostream> #include <c ...

  7. Spring Cloud(一):入门篇

    Spring Cloud 简介 Spring Cloud 是一个基于 Spring Boot 实现的微服务架构开发工具,可以快速构建分布式系统中的某些常用模式,如配置管理.服务治理.断路器.智能路由. ...

  8. css基础,css选择器

    07.29自我总结 css基础 一.什么是CSS CSS是级联样式表 CSS术语标记语言,没有逻辑 CSS作用 完成网页内容的样式与布局 二.CSS的三种引入方式 1. 内联式 书写位置:在 head ...

  9. ebs oracle YTD期间费用

    select PERIOD_NAME, SEGMENT3, SEGMENT3_DESC, sum(case when SEGMENT2 = '1011' then ACCOUNTED_ACCRUAL ...

  10. 11.JavaCC官方入门指南-例6

    例6:计算器--添加括号.一元运算符和历史记录 1.calculator3.jj   我们只需要再添加一些特色,就可以得到一个可用的四则运算计算器.在这一版的修改中 ,我们将使得程序可以接收括号.负值 ...