c# - 将 System.Drawing.Common.Bitmap (.NET Standard 2.0) 传递给期望 System.Dwawing.Bitmap (.NET 4.7.2) 的类
问题描述
我正在将一些类库从 .NET 4.7.2 转换为 .NET Standard(以便其他标准/核心程序集可以更好地使用它们),并且我遇到了特定第三方库的问题。这个库执行图像处理,它的许多类的方法从经典命名空间中获取Image
或对象。Bitmap
System.Drawing
我找到了System.Drawing.Common
包含兼容性类的 .NET Standard 包,因此我自己在源代码中使用这些类可以正常工作。但是当我尝试将这些类之一传递到这个库中时,我得到一个错误:
对“位图”类型的引用声称它在“System.Drawing”中定义,但找不到
我想我明白这里发生了什么(类型在程序集中定义了不同的名称,所以它们是不同的类型)。但是有没有办法让这些工作原样?还是需要第三方库的供应商在他们这边进行更改以支持 .NET Standard?
解决方案
System.Drawing
不是 .NET Standard 的一部分,因此类型不兼容。
此外,我不会使用System.Drawing.Common
它,因为它只是 GDI+ 的一个包装器,在服务器端代码等多线程环境中效果不佳。
我建议转移到ImageSharp或SkiaSharp,这两者都应该适用于您的所有项目。
推荐阅读
- python - Matplotlib 中的堆积条形图
- csv - 带有空标头的 DatastaxBulk 加载程序问题
- java - 当我们向下递归时,从输入数组中删除元素的递归函数
- c# - 用 iText7 填写 pdf 检查字段
- java - 无法在 JavaFX TableView 中显示布尔属性
- sass - 如何让 File Watcher 在 SCSS 中添加供应商前缀?
- python - 使用 -OO 标志运行 uvicorn
- html - 为什么 inline-block 不使 div 内联?
- objective-c - 在没有更多上下文的情况下,表达式的类型是模棱两可的
- cmake - 已安装 aix 上的 cmake 安装,但找不到命令