SWT против AWT в производительности процесса файла изображения? - PullRequest
3 голосов
/ 07 мая 2011

В процессе обработки изображений на стороне сервера я должен использовать AWT или SWT?

Я думаю, что AWT может быть слишком абстрактным по сравнению с фактическими битами данных изображения, поэтому я предполагаю, что SWT может быть немного быстрее.

Или вы предлагаете другую библиотеку обработки изображений с открытым исходным кодом?(Лицензия BSD или Apache)

Сервер работает под управлением Ubuntu 11.04.

Требования:

  • Чтение / запись изображения из / в поток вместо файлов.
  • Тип изображения задается как параметр, а не как расширение.(Это необязательно, если можно определить тип изображения из байтов заголовка.)
  • Поддержка JPG, PNG, GIF.
  • (Бонус) Поддержка анимированного GIF.

Варианты использования:

  • Создание миниатюр.
  • Добавление нескольких текстов баннера.
  • Добавление загадочного водяного знака и проверки правильности.

Ответы [ 2 ]

2 голосов
/ 08 мая 2011

Я могу поддержать идею Эрнеста о SWT для этой задачи, забудь об этом.

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

Лучший из известных мне вариантов Java - это JAI, который, к сожалению, неудобен в использовании. Так что сделайте себе одолжение и используйте JAI для ввода, а Swing для остального, как это:

     RenderedImage renderedImage = JAI.create("fileload", imageFile.getAbsolutePath());
     RenderedImageAdapter planarImage = new RenderedImageAdapter(renderedImage);
     BufferedImage image planarImage.getAsBufferedImage();

JAI также не будет работать в редких случаях (например, JPG с пользовательским цветовым пространством, как написано в Photoshop). Если вы хотите сделать еще лучше, используйте ImageMagick , который является сверхмощным инструментом командной строки. Доступны интерфейсы Java, которые либо предоставляют API для командной строки, либо используют JNI для вызова собственной библиотеки, см. здесь .

2 голосов
/ 07 мая 2011

SWT имеет очень мало с точки зрения обработки изображений.В стандартном JDK-изображении есть причудливый пакет ImageIO и Java2D, который может делать почти все. Я бы назвал это простым делом: используйте встроенные в Java вещи и не пытайтесь использоватьSWT для чего-то, для чего он не предназначен.

...