【问题标题】:How to check image quality/resolution/dpi/ppi? [closed]如何检查图像质量/分辨率/dpi/ppi? [关闭]
【发布时间】:2012-11-13 15:28:15
【问题描述】:

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

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

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

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

【问题讨论】:

  • 为什么要关心图像的dpi?
  • 在 ajaxFileUpload jQuery 插件中上传。如果可能的话最好用 javascript /jquery 测试,否则用代码隐藏测试。
  • 我不想在上传之前检查所选文件的图像质量...
  • @RGA 如果您想在上传前检查所选图像质量,这是一个不同的问题,请编辑

标签: javascript jquery image resolution image-size


【解决方案1】:

注意:

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

关于你原来的问题

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

这些因素中的大多数都涉及复杂的成像算法。但不要失望,您可以使用 Image 类的PropertyItems 属性读取一些属性,并根据大小和 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);

这也有帮助:How can I get the resolution of an image? (JPEG, GIF, PNG, JPG)

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

如果您想在上传之前检查图像质量(如您在 cmets 中所说),这是该问题的一大优势。获得所需数字的唯一内置方法是创建一个新实例(并解码整个图像)——这将是非常低效的。但是……嘿!这是一个起点:How do I reliably get an image dimensions in .NET without loading the image?

延伸阅读:

【讨论】:

  • 您的代码不适用于 Javascript,这会造成混淆。有没有办法在 Javascript 中做到这一点?
  • 不是 JavaScript。悲伤的脸。
  • 原始标签不包含Javascript,这就是为什么答案最初是在C#中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
相关资源
最近更新 更多