我正在使用来自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
具有相同的行为。
答案 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 上仍然是一个问题。