Проверьте, что загруженное изображение DPI и размер для печати - PullRequest
0 голосов
/ 31 января 2011

Мое веб-приложение требует, чтобы пользователи загружали свои фотографии в стиле паспорта. Эта фотография будет использоваться для создания нескольких изображений:

  • веб-аватары разных размеров для отображения в приложении (72 т / д)
  • печатаемое изображение для печати снимка лица размером 1 x 1 дюйм на принтере для идентификационных карт (300 т / д)
  • печатаемое изображение для печати в отчетах на стандартном принтере (300+ точек на дюйм)

Я собираюсь использовать инструмент обрезки изображений на основе jquery (возможно, JCrop ), чтобы пользователь мог выбрать область вокруг лица и игнорировать оставшуюся часть изображения.

Существуют ли какие-либо методы, позволяющие убедиться, что загружаемое изображение имеет достаточно высокое разрешение, чтобы его можно было распечатать на карточном принтере и обычных принтерах размером не менее 1 "x 1"?

Насколько я понимаю, информация EXIM dpi ненадежна. Должен ли я просто проверить, что размер, который они выбирают в кадрировании, равен не менее 300x300 пикселей в необработанном изображении?

Будет ли лучше обрабатывать это на клиенте в javascript или на сервере (который использует Java)?

1 Ответ

1 голос
/ 01 февраля 2011

Хорошо, если вы хотите убедиться, что разрешение изображения достаточно велико, чтобы его можно было печатать с разрешением 300 точек на дюйм с хорошим качеством, вам просто нужно убедиться, что часть, выбранная пользователем.

После быстрого просмотра JCrop создается впечатление, что вы можете легко получить доступ к координатам выбранной части изображения (используя showCoords ()).

При этом вы знаете размер выбранных частей изображения в пикселях.Теперь это зависит от того, насколько велик вы хотите напечатать свое изображение с разрешением 300 точек на дюйм.

Поэтому, например, для буквы США с разрешением 300 точек на дюйм оно должно быть 2550x3300 пикселей.Для DIN A4 это будет 2480x3508 пикселей.

Так что из координат, которые вы получаете из JCrop, просто вычислите, насколько велики размеры прямоугольника в пикселях, и проверьте, достаточно ли он велик, чтобы его можно было печатать до желаемого размера при 300 dpi...

Надеюсь, это поможет ...

Редактировать:

Если вы хотите убедиться, что изображение правильное, под этим я подразумеваюу него есть лицо, которое заполняет около 80% изображения, которое вы можете попробовать использовать скрипт Python, использующий OpenCV ... OpenCV уже предоставляет базовые алгоритмы обнаружения лиц.Поэтому, возможно, вы можете запустить загруженное изображение с помощью алгоритма обнаружения лица, который затем говорит, содержит ли оно лицо или нет ...

...