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

时间:2015-02-16 20:17:27

标签: c# mono .net-3.5 openxml

我正在使用来自System.Drawing.Bitmap库的System.Drawing类使用NET 3.5。

代码就是这样:

Bitmap bm = new Bitmap(filename);
Console.WriteLine("bm.width: " + bm.width); // RETURNS 233, RIGHT AMOUNT
Console.WriteLine("bm.HorizontalResolution: " + bm.HorizontalResolution); // RETURNS 0!!

有没有人有我可以使用的不同兼容类,或任何单声道技巧使这项工作?我需要分辨率才能在Word中正确缩放图像(我生成.docx文件)。

Mono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com

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

1 个答案:

答案 0 :(得分:3)

似乎 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 上仍然是一个问题。