java - 验证上传的图像 DPI 和尺寸是否可打印

标签 java javascript jquery image image-processing

我的网络应用程序要求用户上传自己的护照式照片。这张照片将用于生成多张图像:

  • 可在应用程序中显示多种尺寸的网络头像 (72 dpi)
  • 使用身份证打印机打印 1 英寸 x 1 英寸脸部照片的可打印图像 (300 dpi)
  • 可在标准打印机 (300+ dpi) 上打印报告中的可打印图像

我将使用基于 jquery 的图像裁剪工具(可能是 JCrop ),以便用户可以选择脸部周围的区域并忽略图像的其余部分。

是否有任何技术可以确保上传的图像具有足够高的分辨率,以便可以打印到尺寸至少为 1"x 1"的证卡打印机和常规打印机?

我的理解是 EXIM dpi 信息不可靠。我是否应该简单地验证他们在裁剪中选择的尺寸是否至少等于原始图像中的 300x300 像素?

最好在客户端用 JavaScript 处理这个问题还是在服务器(使用 Java)上处理这个问题?

最佳答案

如果您想确保图像分辨率足够大,以便可以以 300dpi 的分辨率打印良好的质量,您只需要确保用户选择的部分即可。

快速查看 JCrop 后,您似乎可以轻松访问所选图像部分的坐标(使用 showCoords() )。

这样您就可以知道所选图像部分的大小(以像素为单位)。现在取决于您想要以 300dpi 打印多大的图像。

因此,对于 300dpi 的美国信件,它需要为 2550x3300px。对于 DIN A4,其尺寸为 2480x3508 像素。

因此,根据从 JCrop 获得的坐标,只需计算矩形尺寸(以像素为单位),并检查它是否足够大,可以在 300dpi 下打印到您想要的尺寸...

希望有帮助...

编辑:

如果你想确保图像是正确的,我的意思是它有一张占据图像约 80% 的人脸,你可以尝试使用使用 OpenCV 的 python 脚本...OpenCV 已经提供了基本的人脸检测算法。所以也许你可以让上传的图像通过人脸检测算法运行,然后判断它是否包含人脸......

关于java - 验证上传的图像 DPI 和尺寸是否可打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4855781/

相关文章:

javascript - 直接从 url 地址栏调用 javascript 函数?

javascript - JavaScript 中的 preg_replace( '/\h+/' , ' ' , $foo ) ?

java - 如何将页面上下文附加到 JSP 中不在 DOM 标记中的 URL 字符串

javascript - 为什么 Jquery 在使用 set minutes 函数设置时间后显示当前系统时间?

java - 根据特殊的非空格空白字符进行拆分

java - OSX 中的 SWT 系统托盘

javascript - 在JavaScript中传播语法后使用分号会中断执行,并显示错误 “Unexpected token =”

javascript - 我有一个延迟对象数组,如何将 then 与 jQuery.when 一起使用?它不需要数组

java - Lambda 表达式示例在 Java 8 中不起作用

java - JAXB 无法处理包含空格的 XML 元素到 java.net.URI 的映射