我正在实施与图形相关的网络应用,我想检测图像分辨率并验证用户是否正在上传DPI太低的图片
我怎样才能做到这一点?
答案 0 :(得分:0)
大多数现代文件上传器都可以让您访问图像尺寸,或者您可以使用文件读取器将图像加载到隐藏的dom图像对象中并以此方式获取尺寸。 this SO question中的示例。
但他们不会告诉您图像是否适合您的预期用途。你必须自己做一些数学来决定。
要确定图像是否可以接受,我们需要从目标开始。我们需要知道最终输出DPI和测量尺寸。我将只看宽度,但同样的计算也适用于高度。例如DPI,对于PC屏幕,DPI为96,对于体面的喷墨打印机,它可能高达4800乘1200.商业打印范围从300到2400。
接下来,我们需要知道目标区域大小 - 换句话说,测量。我会在这里使用英寸来保持简单。
我们需要做的计算是:
Image size dots / (target size inches * DPI)
这会产生使图像适合目标空间所需的图像缩放。如果图像点大小是目标大小的两倍,则比例为0.5,如果图像点大小是目标的3倍,则比例为3.
接下来,我们需要了解图像可接受的缩放范围。这是任意的,取决于手头的情况。
让我们举一个例子 - 制作一张3.5英寸x 2英寸的名片,我们希望将上传的图片放在背面。我们的印刷速度为300 DPI。用户上传800px宽的图像。我将忽略宽高比以保持简单。
我们需要完成的计算是 -