2011-01-31 71 views
0

我的web應用程序要求用戶上傳自己的護照式照片。此照片將用於生成若干圖像:驗證上傳的圖像DPI和大小是可打印的

  • 多種尺寸的幅材化身在應用程序內顯示(72 dpi)的
  • 可打印的圖像使用ID卡的打印機打印在1「×1」臉部拍攝( 300 DPI)
  • 打印圖像的打印報告標準的打印機上(300+ DPI)

,我將使用一個基於jQuery的圖片裁剪工具(也許JCrop),使用戶可以選擇一個區域就在他們的臉上,忽視了圖像的其餘部分。

是否有任何技術可以確保上傳的圖像的分辨率足夠高,從而可以將其打印到卡片打印機和尺寸至少爲1「x 1」的普通打印機上?

我的理解是EXIM dpi信息不可靠。我是否應該簡單地確認他們在裁剪中選擇的尺寸等於原始圖像中至少300x300像素?

這是最好的處理這在客戶端在JavaScript或服務器(這是使用Java)?

+2

原始圖像的DPI是不相關的;你所關心的只是輸出設備的DPI以及輸出圖像的大小。你完全正確地要求300x300像素,因爲這是1「x1」* 300 DPI。 – 2011-01-31 20:42:56

+0

@Mark - 好的,謝謝。因此,我只需要確保圖像的選定區域包含一張面部圖像,該圖像消耗了圖像的最多(80 +%) – Tauren 2011-01-31 21:08:01

回答

1

那麼,如果你想確保圖像分辨率足夠大,以便它可以以高質量打印在300dpi,則只需確保用戶選擇的部分。

在快速瀏覽JCrop之後,您可以輕鬆訪問所選圖像部分的座標(使用showCoords())。

由此您知道所選圖像部分的大小(以像素爲單位)。現在取決於你想用300dpi打印圖像的大小。

因此,即300dpi的美國信,它需要是2550x3300px。對於DIN A4,它將是2480x3508像素。

所以出來的座標從JCrop獲得簡單計算矩形尺寸有多大的像素,並檢查它是否是足夠大,要打印你在300dpi的願望大小...

希望有所幫助。 ..

編輯:

如果你想確保圖像是正確的,我指的是它有一個面,填補了圖像的大約80%,你可以嘗試使用使用python腳本OpenCV ... OpenCV已經提供了基本的人臉檢測算法。所以,也許你可以通過人臉檢測算法運行上傳的圖像,然後說明它是否包含人臉...