鳄鱼笔记(三) --> bug小屋<--[c# 报错The type initializer for ‘Gdip‘ threw an exception]

5 篇文章 0 订阅
5 篇文章 1 订阅

c# The type initializer for 'Gdip' threw an exception

目的

需要使用到类 using System.Drawing;
讲请求的流文件转成图片

Image downImage = Image.FromStream(res.Content.ReadAsStream());

错误

系统错误,由全局异常中间件拦截 System.TypeInitializationException: The type initializer for ‘Gdip’ threw an exception.
—> System.DllNotFoundException: Unable to load shared library ‘libgdiplus’ or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibgdiplus: cannot open shared object file: No such file or directory

代码

HttpClient httpClient = new HttpClient();
HttpResponseMessage res = await httpClient.GetAsync(uri);
if (res.StatusCode == HttpStatusCode.OK) { 
    Image downImage = Image.FromStream(res.Content.ReadAsStream());
    var downPicture = excelWorksheet.Drawings.AddPicture($"image_{DateTime.Now.Ticks}", downImage);
    //这两句是我向excel中插入图片的语句,先注释掉
    //downPicture.SetSize(40,40);
    //downPicture.SetPosition(rowNum - 1, 0, columnNum - 1, i*40);
} else { 
    LogHelper.Info("Class:FAController function:ExportAsync FA IMAGES文件下载请求报错!");
}

原因

总体解决下来,觉得是缺少组件,System.Drawing 在linux 并不能很好的支持,所以需要下载特定的组件(个人愚见,非权威说法),需要下载对应的组件

解决方案

以下方案来自于网络 建议直接使用方案二(在此只做记录,本人尝试了两次,显示方案一,不行,在试验的方案二,才可以的,所以不能否认方案一不好用 本人电脑 linux centos8)
博客园地址:方案一
解决办法如下

一、安装一下包:
按照顺序执行即可

yum -y install autoconf automake libtool
yum -y install freetype-devel fontconfig libXft-devel
yum -y install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel
yum -y install glib2-devel cairo-devel
yum -y install mlocate
git clone https://github.com/mono/libgdiplus
cd libgdiplus
./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

三、更新一下库:

updatedb

csdn地址 : 方案二
执行以下命令 (然后重启自己的项目即可)

sudo yum install https://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/l/libgdiplus-6.0.4-3.el8.x86_64.rpm

总结

只知其然不止其所以然

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值