gdiplus 水印_.NET Core中使用水印

.NET Core中使用水印

在项目中,我需要给上传的图片添加水印,通过网上查找针对.NET Core 的找到两个方案:

使用 CoreCompat.System.Drawing 及用于非Windows的runtime.osx.10.10-x64.CoreCompat.System.Drawing或runtime.linux-x64.CoreCompat.System.Drawing

使用 System.Drawing.Common

遇到问题

经过尝试,发现方案1在.NET Core 2.2里面有类型冲突问题,如下:

The type 'Color' exists in both 'CoreCompat.System.Drawing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c0a7ed9c2333b592' and 'System.Drawing.Primitives, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

故我采用了方案2,一开始很顺利:本地Windows上测试、debug都正常!

但当我把代码部署到CentOS服务器上的时候,出现问题, 得到错误消息如下:

ERROR:The type initializer for 'Gdip' threw an exception.

at System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromDelegate_linux(StreamGetHeaderDelegate getHeader, StreamGetBytesDelegate getBytes, StreamPutBytesDelegate putBytes, StreamSeekDelegate doSeek, StreamCloseDelegate close, StreamSizeDelegate size, IntPtr& image)

at System.Drawing.Image.InitFromStream(Stream stream)

at System.Drawing.Image.LoadFromStream(Stream stream, Boolean keepAlive)

问题解决

sudo yum install libgdiplus

cd /usr/lib

sudo ln -s libgdiplus.so gdiplus.dll

export LD_LIBRARY_PATH=/usr/lib

很遗憾,没有找到/usr/lib/libgdiplus.so,但我确实安装成功了。所以,经过摸索,我找到了,由于我的服务器是64位的,实际安装目录在/usr/lib64,且文件名是libgdiplus.so.0与libgdiplus.so.0.0.0,前者似乎是softlink。

OK到此成功解决,似乎都不需要重启服务,步骤如下:

sudo yum install libgdiplus

cd /usr/lib64

ln -s libgdiplus.so gdiplus.dll

export LD_LIBRARY_PATH=/usr/lib

参考文章

其他

安装libgdiplus的成功输出:

[root@izuf****1agz ****]# yum install libgdiplus

Loaded plugins: fastestmirror

Determining fastest mirrors

base | 3.6 kB 00:00:00

epel | 5.3 kB 00:00:00

extras | 3.4 kB 00:00:00

nginx | 2.9 kB 00:00:00

packages-microsoft-com-prod | 2.9 kB 00:00:00

updates | 3.4 kB 00:00:00

(1/6): epel/x86_64/updateinfo | 974 kB 00:00:00

(2/6): extras/7/x86_64/primary_db | 200 kB 00:00:00

(3/6): updates/7/x86_64/primary_db | 5.0 MB 00:00:00

(4/6): epel/x86_64/primary_db | 6.7 MB 00:00:00

(5/6): packages-microsoft-com-prod/primary_db | 170 kB 00:00:00

(6/6): nginx/x86_64/primary_db | 46 kB 00:00:05

Resolving Dependencies

--> Running transaction check

---> Package libgdiplus.x86_64 0:2.10-10.el7 will be installed

--> Processing Dependency: libtiff.so.5(LIBTIFF_4.0)(64bit) for package: libgdiplus-2.10-10.el7.x86_64

--> Processing Dependency: libXrender.so.1()(64bit) for package: libgdiplus-2.10-10.el7.x86_64

--> Processing Dependency: libcairo.so.2()(64bit) for p

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值