Mono上的C#位图类具有无效属性

Mono上的C#位图类具有无效属性,c#,mono,.net-3.5,openxml,C#,Mono,.net 3.5,Openxml,我正在使用NET3.5使用System.Drawing库中的System.Drawing.Bitmap类 代码如下: Bitmap bm = new Bitmap(filename); Console.WriteLine("bm.width: " + bm.width); // RETURNS 233, RIGHT AMOUNT Console.WriteLine("bm.HorizontalResolution: " + bm.HorizontalResolution); // RETURNS

我正在使用NET3.5使用
System.Drawing
库中的
System.Drawing.Bitmap

代码如下:

Bitmap bm = new Bitmap(filename);
Console.WriteLine("bm.width: " + bm.width); // RETURNS 233, RIGHT AMOUNT
Console.WriteLine("bm.HorizontalResolution: " + bm.HorizontalResolution); // RETURNS 0!!
有没有人有我可以使用的不同兼容类,或者mono有什么窍门可以让它工作?我需要分辨率来在Word中正确缩放图像(我正在生成.docx文件)


System.Drawing.Image
具有相同的行为。

似乎System.Drawing.Graphics在Linux环境中返回“正确”的Dpi信息

var imgPhoto = System.Drawing.Image.FromFile(imgAbsolutePath); // object with HorizontalResolution and VerticalResolution that return 0 on Linux
var gImage = System.Drawing.Graphics.FromImage(imgPhoto); 
var dpiX = gImage.DpiX;
var dpiY = gImage.DpiY;

至少,这在.NET Core 2.2上仍然是一个问题。

您确定图像中包含DPI信息吗?@fog,这不是给定的吗?Windows不仅可以在C#中找到它,还可以右键单击它。这是一个正常的jpg。我假设图像数据不是特定于操作系统的,它不是。我只是问,因为有时候文件没有嵌入DPI数据。您可以尝试从命令行中“file your_file.jpg”来提取一些信息并进行检查。我想这是由以下错误引起的:
var imgPhoto = System.Drawing.Image.FromFile(imgAbsolutePath); // object with HorizontalResolution and VerticalResolution that return 0 on Linux
var gImage = System.Drawing.Graphics.FromImage(imgPhoto); 
var dpiX = gImage.DpiX;
var dpiY = gImage.DpiY;