C#/.Net

Linux下使用.NetCore绘制图片遇到的坑

需求

绘制一张带有二维码的图片,并绘制一些文字等。

环境使用了debian docker的镜像。然而正常操作后图片上文字全是乱码,排查后发现需要以下改动:

绘图库

首先Dockerfile需要包含Linux下绘图的类库:

字符集

修改字符集为【zh_CN.UTF-8】。

Dockerfile中加入:

使用locale命令可以查看当前字符集。
使用locale -a命令可以查看已经下载的字符集。

字体

如果以上加入后图片中的中文还是乱码,那可能系统中没有默认的中文字体,还需要加入中文字体。

比如:将字体文件放在宿主机public/static/font/,然后复制到容器内/usr/share/fonts/myfonts/,并执行mkfontscalemkfontdirfc-cache

字体文件可以从window中C:\Windows\Fonts直接复制。

Dockerfile中加入:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据