Cameron,

Is X Windows running on your Linux box? If not, add:

 -Djava.awt.headless=true

to the startup options of your web container.

Graham

> As part of my content management system, I need to be able to generate
> thumbnails from existing JPEG files located on the filesystem.  A simple
> chunk of code I found uses the java.awt package to handle this nicely,
> but when I moved the compiled classes from my windowsXP testing machine
> to a linux server, it no longer worked.  The code I have been using
> employs the (apparently) deprecated Toolkit class.  
> 
> I have seen that things like JAI and ImageMagick can accomplish this
> task, but it seems like overkill for something that is so simple, and
> should be available as part of the core Java distribution. 
> 
> Does anyone employ simple code that accomplishes the functionality
> implied by:
> 
> generateThumbnail(String inFile, String outFile, String sizePercent)
> 
> to create and save a jpeg to the filesystem at a different size?
> 
> 
> 
> The code that I have been using is:
> 
> makeThumbnail(String inFile, String thumbFile, String th, String
> inQuality) throws Exception {
> 
> Image image = Toolkit.getDefaultToolkit().getImage(inFile);
> MediaTracker mediaTracker = new MediaTracker(new Container());
> mediaTracker.addImage(image, 0);
> mediaTracker.waitForID(0);
> 
> int imageWidth = image.getWidth(null);
> int imageHeight = image.getHeight(null);
> double imageRatio = (double)imageWidth / (double)imageHeight;
>       
> int thumbHeight = Integer.parseInt(th);
> int thumbWidth = (int)(thumbHeight * imageRatio);
> 
> // draw original image to thumbnail image object and
> // scale it to the new size on-the-fly
>       
> BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight,
> BufferedImage.TYPE_INT_RGB);
> Graphics2D graphics2D = thumbImage.createGraphics();
> 
> graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHi
> nts.VALUE_INTERPOLATION_BILINEAR);
> graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);
> // save thumbnail image to OUTFILE
> BufferedOutputStream out = new BufferedOutputStream(new
> FileOutputStream(thumbFile));
> JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
> JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);
> int quality = Integer.parseInt(inQuality);
> quality = Math.max(0, Math.min(quality, 100));
> param.setQuality((float)quality / 100.0f, false);
> encoder.setJPEGEncodeParam(param);
> encoder.encode(thumbImage);
> 
> }
> 
> 
> 
> it throws the following exception (only when executed on a linux server)
> :
> 
> 
> java.lang.NoClassDefFoundError
>       at java.lang.Class.forName0(Native Method)
>       at java.lang.Class.forName(Class.java:141)
>       at java.awt.Toolkit$2.run(Toolkit.java:748)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:739)
> 
> Thanks for any advice...
> 
> Cameron
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
-- 
Graham Stark, Virtual Worlds
phone: (+044) 01908 618239 mobile: 07952 633185
Homepage http://www.virtual-worlds.biz
Virtual Learning Arcade http://www.bized.ac.uk/virtual/vla
Virtual Economy http://www.bized.ac.uk/virtual/economy         


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to