.net core 使用 ZKWeb.system.drawing 在centos下使用gdi 画图

本文介绍了在CentOS和Debian系统中,由于System.Drawing不支持,转而使用ZKWeb.system.drawing进行图形处理。详细步骤包括ZKWeb.system.drawing的NuGet安装、环境搭建,特别是CentOS中需要安装gdiplus及相关依赖,并通过编译源码解决乱码问题。此外,还提供了在Debian系统中安装字体库的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

System.Drawing 只支持windows系统,如果有使用 System.Drawing 的地方,在centos中运行启动时会报错,所以必须找到一个兼容的库支持centos

system.Drawing.Common 和 ZKWeb 的比较

system.Drawing.Common 也是可以用的,效果和ZKWeb差不多。不过system.Drawing.Common的发展路线是为windows专用的,使用时要在配置文件中配置支持非windows平台才可以。而且汉字打印乱码(不知道是不是因为字体库没有的原因)。所以我们选择了ZKWEB

项目中引用ZKWeb

ZKWeb.system.drawing 在 nuget中可以直接找到
引用后系统中所有的System.Drawing都要替换成System.DrawingCore

CentOS 中环境搭建

ZKWeb 依赖于 gdiplus插件,必须要安装这个插件才可以工作

yum install autoconf automake libtool
yum install freetype-devel fontconfig libXft-devel
yum install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel
yum install glib2-devel cairo-devel
yum install git
git clone https://github.com/mono/libgdiplus
cd libgdiplus
yum -y install ftp
yum -y install gcc automake autoconf libtool make
yum -y install gcc gcc-c++
./autogen.sh
make
make install
ln -s /usr/local/lib/libgdiplus.so /usr/lib64/libgdiplus.so
ln -s /usr/local/lib/libgdiplus.so /usr/libgdiplus.so

以上方法亲测有效
不过还看到有人介绍简单方法 https://blog.51cto.com/usdoc/2806098,没有试:
yum whatprovides libgdiplus && yum install -y epel-release && yum install -y libgdiplus-2.10-9.el7.x86_64 && yum install -y libgdiplus-devel

Debian:

$sudo apt-get install libgdiplus
cd /usr/lib
$sudo ln -s libgdiplus.so gdiplus.dll

CentOS 字体库安装

centos中默认没有中文字体库,

1.拷贝字体

在 /usr/share/fonts/下创建一个文件夹(名字随便),将windows/fonts下的需要字体文件拷贝过来,

2.刷新字体

执行fc-cache可以刷新系统的字体,fc-list可以查看字体列表
如果fc-cache报错,需要安装这个工具

centos:
 yum -y install fontconfig
Debian:

$sudo apt-get install fontconfig

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值