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

在 Linux 命令行运行:

dotnet Web.dll  # dll文件名 自己换

(注意:不要用 nohup dotnet Web.dll 在后台运行,后台运行看不到异常)

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

  1.  
    #1. 安装 glib-2.0
  2.  
    yum install libgnomeui-devel
  3.  
     
  4.  
    #2. 安装 libgdiplus
  5.  
    wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-5.6.tar.gz
  6.  
    tar -zxf libgdiplus-5.6.tar.gz
  7.  
    cd libgdiplus-5.6
  8.  
    ./configure --prefix=/usr
  9.  
    make
  10.  
    make install

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

的做法:

  1.  
    yum install autoconf automake libtool
  2.  
    yum install freetype-devel fontconfig libXft-devel
  3.  
    yum install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel
  4.  
    yum install glib2-devel cairo-devel
  5.  
    git clone https://github.com/mono/libgdiplus
  6.  
    cd libgdiplus
  7.  
    ./autogen.sh
  8.  
    make
  9.  
    make install
  10.  
    cd /usr/lib64/
  11.  
    ln -s /usr/local/lib/libgdiplus.so gdiplus.dll

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

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

验证码乱码的解决


主要是解决字体问题。

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

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

所以先在  Windows 系统中找到:

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

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

  1.  
    mkdir /usr/share/fonts/micro/
  2.  
    cd /usr/share/fonts/micro/
  3.  
    # 字体文件复制到这个文件夹, 略
  4.  
    fc-cache #重新加载字体

再重新执行 dotnet Web.dll , 验证码正常了。

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

上一篇:Vue中格式化json数据


下一篇:xhEditor如何能实现直接粘贴把图片上传到服务器中