欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

.net core Linux ( Centos 7 ) 下 验证码图片显示不出来, 或者乱码【转】

程序员文章站 2022-06-02 22:22:09
...
在 Linux 命令行运行:

dotnet Web.dll  # dll文件名 自己换
(注意:不要用 nohup dotnet Web.dll 在后台运行,后台运行看不到异常)

再来访问登录界面, 此时验证码看不到, Linux 下提示: “Unable to load shared library 'gdiplus'” .

#1. 安装 glib-2.0
yum install libgnomeui-devel


#2. 安装 libgdiplus
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-5.6.tar.gz
tar -zxf libgdiplus-5.6.tar.gz
cd libgdiplus-5.6
./configure --prefix=/usr
make
make install

或者直接按: https://github.com/zkweb-framework/zkweb.system.drawing的做法:

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
git clone https://github.com/mono/libgdiplus
cd libgdiplus
./autogen.sh
make
make install
cd /usr/lib64/
ln -s /usr/local/lib/libgdiplus.so gdiplus.dll

安装完, 再运行, 会发现验证码出来了, 但有乱码:

验证码乱码的解决
主要是解决字体问题。

在生成验证码的代码中, 关于字体的有一行:

string[] font = { "Times New Roman" };

所以先在 Windows 系统中找到:


复制到 Linux 中的 /usr/share/fonts/micro/ 下

mkdir /usr/share/fonts/micro/
cd /usr/share/fonts/micro/

# 字体文件复制到这个文件夹, 略
fc-cache  #重新加载字体
再重新执行 dotnet Web.dll , 验证码正常了。
原文地址:http://joeychou.me/blog/71.html


PS:
在实际使用过程中,图片不显示按照文章所述进行了安装,重新加载方案还是无法显示图片,崩溃。
后来又不停的搜索,最后找到解决方法:

yum install libgdiplus-devel

安装后,重新启动项目一次成功,泪奔! 在此感谢作者分享:
原文标题:.NET Core项目在Linux上使用QRCoder时出错"Unable to load DLL 'gdiplus'"
https://blog.csdn.net/weixin_34258838/article/details/86016145