Я могу поддержать идею Эрнеста о 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 для вызова собственной библиотеки, см. здесь .