使用的是 corefx 的 System.Drawing.Common 中的 Image 类,在 Windows 上可以正常获取分辨率,在 Linux 上却获取不到,示例代码如下:
class Program
{
static void Main(string[] args)
{
var image = Image.FromFile("test.jpg");
Console.WriteLine("Resolution: {0}x{1}", image.HorizontalResolution, image.VerticalResolution);
}
}
在 Ubuntu 上的运行结果:
Resolution: 0x0
是 linux 上实际调用的是 libgdiplus 中的 GdipGetImageHorizontalResolution (GpImage *image, REAL *resolution)
与 GdipGetImageVerticalResolution (GpImage *image, REAL *resolution)
方法,详见 image.c#L1321
这里也提到了这个问题:For some images HorizontalResolution and VerticalResolution erroneusly returns 0
可能兼容性还是不行,试试CoreCompat.System.Drawing.v2
现在core 图片操作是个问题啊,我想拆图。不知道怎么搞了。就是用户上传头像,拆图。
– 87Super 6年前