7

我想检查所选输入图像文件的当前质量(分辨率/dpi/ppi)

我的控件是图像上传器 jquery 插件。

如何获得所选文件的质量?

(我需要选择图像文件的分辨率而不是屏幕分辨率)

4

1 回答 1

5

笔记:

答案是用 C# 而不是 Javascript,在 JS 中没有办法做到这一点,这不是原始问题的要求。

关于你原来的问题

这很大程度上取决于您认为“高质量”图像(顺便说一句很好读)。但无论如何,品质因数并不直接存储在 JPEG 文件中,因此您无法直接从文件中读取。

这些因素中的大多数都涉及复杂的成像算法。但不要失望,您可以使用PropertyItemsImage 类上的属性读取一些属性,并根据大小和 dpi 或 ppi 进行一些计算以了解图像的质量。这是一个简单的例子:

Bitmap bmp = new Bitmap("winter.jpg");
Console.WriteLine("Image resolution: " + bmp.HorizontalResolution + " DPI");
Console.WriteLine("Image resolution: " + bmp.VerticalResolution + " DPI");
Console.WriteLine("Image Width: " + bmp.Width);
Console.WriteLine("Image Height: " + bmp.Height);

这也将有所帮助:如何获得图像的分辨率?(JPEG、GIF、PNG、JPG)

“但我想在上传之前检查所选文件的图像质量”

如果您想在上传前检查图像质量(正如您在评论中所说),这是该问题的一大优势。获得所需数字的唯一内置方法是创建一个新实例(并解码整个图像)——这将是非常低效的。但是……嘿!这是一个起点:如何在不加载图像的情况下在 .NET 中可靠地获取图像尺寸?

进一步阅读:

于 2012-11-26T08:53:51.597 回答