问题标签 [system.drawing.common]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2267 浏览

c# - System.OverflowException: '算术运算导致溢出。'

我创建了 .NET Core 控制台应用程序并添加了对System.Drawing.Commonnuget 的引用。我正在尝试从ms docs运行以下代码,但它失败bitmap1.GetEncoderParameterListSystem.OverflowException

“算术运算导致溢出。”

这段代码有什么问题?我做违法的事吗?

堆栈跟踪:

更新 这个也崩溃了:

0 投票
1 回答
2104 浏览

c# - .NET Core System.Drawing.Common PrintDocument 在 Linux 上不起作用

我在 Linux 上使用 System.Drawing.Common 的 PrintDocument 时遇到问题,更具体地说,问题来自在 PrinterSettings.Unix 中使用的 PrintingServices.LoadPrinterSettings

这里是错误的内容:

Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
执行请求时发生未处理的异常。System.NullReferenceException:对象引用未设置为对象的实例。在 System.Drawing.Printing.PrintingServices.LoadPrinterSettings(字符串打印机,PrinterSettings 设置)

在 Windows 上一切正常,因为 PrintDocument 使用为 Windows 准备的解决方案。

代码:

我在用着:

System.Drawing.common (4.5.1)

.NET 核心 2.1

Linux 上已经安装了 libc6-dev 和 libgdiplus

Linux - Debian 9

任何人都可以帮忙吗?

0 投票
2 回答
2095 浏览

asp.net-core - 在 ASP.NET-Core 2.2 中调整大小和创建图像缩略图

我正在尝试在 asp.net-core 2.2 应用程序中创建缩略图图像,但每当它达到创建缩略图的程度时,我都会不断收到上述错误。

主图像可以正常创建和存储,但无法创建缩略图。请感谢任何解决错误的指南

这是我存储上传图像的方法。这个按预期工作

我尝试了两种不同的方法来创建缩略图,但其中任何一种都会出现上述错误

这是两种方法。

第一个是这样的:

第二个是这样的:

这就是我调用方法的地方:

如果您能指出我在哪里缺少正确的路径或在 ASP.NET-Core 2.* 中处理图像缩略图创建的更好方法以修复错误,请帮助我。

问候

0 投票
1 回答
490 浏览

c# - System.Drawing.Common DrawString 无法在 Linux 中正确呈现文本

所以我不确定问题是什么,并且已经用尽了我能想到的所有选择。我的目标是 Ubuntu 18.04 LTS 上的 dotnet core 3.0。在 Windows 环境中,它工作正常,但在这个 Ubuntu 环境中,文本并没有呈现它所支持的方式,并且看起来像这样

它应该如何显示

它应该如何显示

它在 Ubuntu 上的显示方式

它在 Ubuntu 上的显示方式

我正在使用 Arial 字体,并且安装了 MS TrueType 字体包,我已经尝试过 Ubuntu 原生的字体系列,但还是一样。

0 投票
1 回答
299 浏览

c# - Spire.PDF.PdfDocument.print() 在 Ubuntu LTS 20.04 上抛出 System.NotImplementedException

编辑:我联系了开发团队。他们为此创造了问题。如果有任何改进,我会更新这篇文章。 问题链接

该项目已使用 .netCore3.1 进行编码。我还使用了 FreeSpire.PDF v5.4。我使用 Spire.Pdf.PdfDocument 将传入的 pdf 数据转换为 pdf 并触发打印过程。Windows 上的所有测试都成功。在 Linux 上,它能够将数据(base64String)转换为 pdfDocument。但是在打印过程中它抛出了 NotImplementedException(你可以在 SS 中看到)。

System.Drawing.Common 用于 Spire.PDF。我没有将其包含在项目参考中。(我后来添加了它,但结果是一样的。)

在这个阶段我不明白该怎么做。我使用的所有 DLL 都与 .net 标准或 .netCore 兼容。我也没有在 Windows 中收到任何错误。我该如何解决这个问题?

作为一个额外的观点,我可以通过触发打印机而不使用 Spire.PDF.PdfDocument.print () 方法来打印吗?

未实现异常

0 投票
1 回答
216 浏览

c# - 尝试在 ASP Net Core 中将 jpeg 转换为 png 会引发 GDI+ 异常

我在 ASP Net Core (5) 应用程序中使用 System.Drawing.Common 5.0.1 nuget 包,并希望将图像(可以是 jpeg、png 等)转换为 png(如果还不是 png)。

成功上传图像后,我尝试使用以下代码对其进行转换(图像字节在 中可用uploadResult.FileData):

它总是在这条线上失败: image.Save(ms, ImageFormat.Png);

例外: An exception of type 'System.Runtime.InteropServices.ExternalException' occurred in System.Drawing.Common.dll but was not handled in user code: 'A generic error occurred in GDI+.'

我知道这个网站上有很多关于这个错误消息的帖子,它们包含很好的答案,但我相信我关注了它们。此外,大多数问题都使用文件系统中的图像或写入图像,但我的图像已经可以作为字节数组使用,并且我写入内存流 - 但我看不出可能导致这种情况的原因。

0 投票
0 回答
67 浏览

c# - System.Drawing.Common 在 Linux 中抛出 DllNotFoundException

System.Drawing.Common在我的代码中使用,但是当我将它部署到 Linux 容器(Ubuntu 20.04,Focal Fossa)时,它告诉我有一个错误,user32.dll没有找到,这是一个 Windows 应用程序。
这是错误的图像〜

0 投票
1 回答
209 浏览

skiasharp - 使用 C# 以跨平台方式测量字符串的宽度(以像素为单位)

我有一些现有的 C# 代码,用于System.Drawing.Common测量字符串的近似宽度(以像素为单位):

升级到 后.NET 6.0,我收到一堆警告消息,告诉我这些图形基元仅在 Windows 上受支持。我希望这个测量可以在其他平台上工作,所以我尝试对两者做类似的事情SkiaSharp

并且ImageSharp

但是,如您所见,我无法获得SkiaSharpImageSharp产生相同的宽度,尽管它们产生了相似的结果:

我对图形编程的了解不足以知道我缺少什么。它可能是点和像素之间的单位转换,或者我没有设置正确的属性。关于如何进行SkiaSharp和/或ImageSharp返回与 相同的宽度测量的任何想法System.Drawing.Common

谢谢你。

0 投票
1 回答
535 浏览

.net-6.0 - .NET 6 System.Drawing.Common 运行时开关

根据https://docs.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only System.Drawing.Common 不再支持非windows OS 除非设置了运行时配置开关。我已经设置了 runtimeconfig.template.json 并看到了开关:

在 bin/Debug/net6.0 中的文件 .runtimeconfig.json 中

但是,当我在 linux 机器中运行应用程序时,dotnet exec app.dll我仍然得到 PlatformNotSupportedException

0 投票
0 回答
35 浏览

c# - 使用 SkiaSharp 而不是 System.Drawing 渲染位图

随着最近对 Net 6.0 的更新,该System.Drawing.Common库仅在 Windows 上受支持。在我的 WPF 应用程序中,我决定将其换成 SkiaSharp,但在此过程中遇到了问题。

我发现的关于使用 Skia 进行渲染的所有信息都归结为使用 aSystem.Drawing.Bitmap并将其转发到 UI,据我所知,仅在 Windows 上受支持。

所以我的问题是如何在不使用 Net 6.0 的情况下使用 Skia 渲染我的图像System.Drawing.Common