使用ZKWeb.system.drawing

  • 背景
  • system.Drawing.Common 和 ZKWeb 的比较
  • 项目中引用ZKWeb
  • CentOS 中环境搭建
  • CentOS 字体库安装
    • 1.拷贝字体
    • 2.刷新字体

背景

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

CentOS 字体库安装

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

1.拷贝字体

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

2.刷新字体

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

.net core 使用 ZKWeb.system.drawing 在centos下使用gdi 画图相关推荐

  1. .Net Core 之 图形验证码 本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能。...

    本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能. 通过测试的系统: Windows 8.1 64bit Ubuntu Server 16.04 LTS 64 ...

  2. [译]如何在.NET Core中使用System.Drawing?

    你大概知道System.Drawing,它是一个执行图形相关任务的流行的API,同时它也不属于.NET Core的一部分.最初是把.NET Core作为云端框架设计的,它不包含非云端相关API.另一方 ...

  3. Net core中使用System.Drawing对上传的图片流进行压缩

    由于net core 中默认没有System.Drawing,可以通过nuget下载一个来代替System.Drawing.Common 直接压缩图片 /// <summary> /// ...

  4. 获取System.Drawing.SystemColors类下的所有颜色

    System.Drawing.SystemColors下的颜色主要用在windows下的窗口.菜单.文本.按钮等等使用的颜色.现在想把这些颜色使 用到web上,如果直接使用名称的话,可能有些浏览器无法 ...

  5. 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建...

    作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...

  6. .Net Core上用于代替System.Drawing的类库

    目前.Net Core上没有System.Drawing这个类库,想要在.Net Core上处理图片得另辟蹊径. 微软给出了将来取代System.Drawing的方案,偏向于使用一个单独的服务端进行各 ...

  7. 让System.Drawing.Bitmap可以在linux运行

    .net core的bitmap使用的是以下类库,但无法在linux运行 https://github.com/CoreCompat/CoreCompat 在linux运行需要安装runtime.li ...

  8. System.Drawing.Common workaround in .NET6

    System.Drawing.Common workaround in .NET6 Intro 最近有不少小伙伴在升级 .NET 6 时遇到了 System.Drawing.Common 的问题,同时 ...

  9. C# 使用System.Drawing.Bitmap报错

    C#使用System.Drawing.Bitmap时报错 最近创建c#项目,使用System.Drawing.Bitmap时报错如下: CS1069 未能在命名空间"System.Drawi ...

最新文章

  1. Error:(39, 13) Failed to resolve: com.android.support:appcompat-v7:26.0.0 [duplicate]
  2. 服务器不能显示皮肤,服务器控件gridview扩展,为什么不能应用皮肤?
  3. Android logcat命令详解
  4. linux 快速删除大量/大文件
  5. HTML中Div、span、label标签的区别
  6. 重置mysql密码的命令
  7. php create()方法,ThinkPHP中create()方法自动验证实例
  8. Python案例:输出指定要求的回文日期
  9. sql操作mysql数据库_一些常用的操作MySQL数据库的sql语句
  10. Android开发笔记(八十八)同步与加锁
  11. iOS - Phone 电话
  12. flock用法详解 linux_netstat命令详解
  13. c++ gdal 矢量转栅格_QGIS中的矢量图形绘制机制
  14. Linux学习笔记(10)
  15. 深度学习:卷积神经网络(详解版)
  16. 12生肖年份和星座组合图
  17. 学医后才知道的小知识...
  18. WordPress编辑器支持pdf上传
  19. ubuntu14.04安装krita
  20. 华为cpe虚拟服务器,你真的看懂它了吗?华为5G CPE Pro深度体验

热门文章

  1. mysql 查重名现象_mysql查询重复数据【转】
  2. 周末阅读之《刻意练习》,很多“天才”不过是找对了方法
  3. 教师网络计算机研修培训总结,教师网络研修总结
  4. R语言:64位操作系统读取excel文件方法总结
  5. Python- exe应用程序在Windows Server2012 64位系统运行报错
  6. 几种更新(Update语句)查询的方法
  7. 如何成功软件开发外包
  8. 常用光学字符识别(OCR)软件比较
  9. 安卓项目各文件夹的含义和用处
  10. 课程设计-商店管理系统(三)----前端页面的制作(三)