错误消息
Program.cs(1,14):错误CS0234:命名空间'System‘中不存在类型或名称空间名称’绘图‘(您缺少程序集引用吗?)
能解决这个问题吗?或者,如果我使用C#在Linux上开发,那么我就不应该使用这个库了?
发布于 2017-06-08 06:44:24
2021年:
要将这些API用于跨平台应用程序,请迁移到以下库之一:
您可以在短期内使用System.Drawing,但要知道没有支持。
或者,您可以通过在System.Drawing.EnableUnixSupport文件中将runtimeconfig.json运行时配置开关设置为true来启用对非Windows平台的支持:添加此配置开关是为了使跨平台应用程序在很大程度上依赖于这个包的时间来迁移到更现代的库。然而,非Windows错误将不会被修复。此外,我们可能在将来的版本中完全删除对非Windows平台的支持,即使您使用运行时配置开关启用它。
为了能够在Linux机器上使用System.Drawing,您可能还需要安装@saman和@alex中提到的libgdiplus
。
2017年:
System.Drawing
名称空间目前并不是corefx的一部分,因为它依赖于来自GDI+的GDI+特性。
但在那里有计划吗将在未来支持它。
但有多种选择:
CoreCompat.System.Drawing是System.Drawing的Mono实现的.NET核心端口。与System.Drawing中的.NET框架和Mono中的CoreCompat.System.Drawing一样,CoreCompat.System.Drawing也依赖于Windows上的GDI+。因此,出于同样的理由,应谨慎行事。
ImageSharp是一个全新的纯托管代码和跨平台的图像处理库.它的性能不如依赖本机OS特定依赖的库的性能好,但它仍然非常合理。它唯一的依赖是.NET本身,这使得它非常可移植:没有需要安装的附加包,只需引用ImageSharp本身,您就完成了。
Magick.NET是流行的ImageMagick库的.NET包装器。ImageMagick是一个开源的跨平台库,主要关注图像质量,并提供非常广泛的受支持的图像格式。它还支持与ImageSharp相同的EXIF。
( .NET核心构建的Magick.NET目前只支持Magick.NET。)
SkiaSharp是Google的Skia跨平台2D图形库的.NET包装器,由Xamarin团队维护。SkiaSharp现在与.NET内核兼容,而且速度非常快。
这个库对于本机FreeImage库来说,就像Magick.NET对于ImageMagick:.NET核心包装器一样。它提供了一个很好的选择图像格式,良好的性能,良好的视觉质量。
这里是上述库的一些很好的示例和性能分析。
发布于 2021-09-18 12:09:52
在命令行上运行以下命令
sudo apt-get install libgdiplus
或
sudo yum install -y libgdiplus-2.10-9.el7.x86_64
发布于 2021-04-14 07:36:22
微软从那时起就发布了System.Drawing.Common,它也在Linux上工作。
他们决定在.NET 6中“只使用libgdiplus
”,这个包将显示编译警告,因为它依赖于某些Linux发行版中可能不存在的libgdiplus
。见https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only。
我们切换到ImageSharp,因为它是唯一的图像处理库,它是纯托管代码,没有任何非托管依赖(不像SkiaSharp或MagickNET)。
https://stackoverflow.com/questions/44428405
复制相似问题