Lenik
Lenik

Reputation: 14458

SWT vs AWT in image file process performance?

In server side image process, should I use AWT or SWT?

I think AWT maybe too abstract away from the actual image data bits, so I guess SWT maybe slightly faster.

Or do you suggest another open source image process library? (BSD or Apache licensed)

The server is running Ubuntu 11.04.

Requirements:

Use cases:

Upvotes: 3

Views: 774

Answers (2)

the.duckman
the.duckman

Reputation: 6406

I can second Ernest's notion about SWT for this task, forget it.

But while Swing is fine for image manipulation and output, Swing's ImageIO fails too often during input: many images which you'll meet in the wild, and which work fine in the browser, produce Exceptions.

The best Java option I know of is JAI, which unfortunately is a pain to use. So do yourself a favor, and use JAI for input, and Swing for the rest, like this:

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

JAI will also fail in rare cases (JPGs with custom color space, as written by Photoshop, are an example). If you want to do even better, use ImageMagick, which is an ultra-powerful command line tool. There are Java interfaces available, which either provide an API for the command line, or use JNI to call the native library, see here.

Upvotes: 2

Ernest Friedman-Hill
Ernest Friedman-Hill

Reputation: 81694

SWT has very little in terms of image processing. The standard JDK image stuff has the fancy ImageIO package, and Java2D which can do pretty much everything. I'd call this a no-brainer: use Java's built-in stuff, and don't try to use SWT for something it's not intended for.

Upvotes: 2

Related Questions