One thing to keep in mind with ImageIO and a long-running process, like an app server, is its potential use of a disk-based cache. You may end up with lots of temporary files that will only be removed if the VM exits normally. See:
http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#deleteOnExit() There's also this interesting bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4513817 To disable the disk-based cache in favor of a memory-based cache, use ImageIO.setUseCache(false). Once you have a BufferedImage, one way to resize it is with AffineTransformOp: http://java.sun.com/j2se/1.4.2/docs/api/java/awt/image/AffineTransformOp.html http://javaalmanac.com/egs/java.awt.image/CreateTxImage.html As for saving with custom compression, here's something I've used before: protected void writeImage(RenderedImage image, OutputStream out) throws IOException { ImageOutputStream imageOut = ImageIO.createImageOutputStream(out); ImageWriter imageWriter = (ImageWriter)ImageIO.getImageWritersByFormatName("jpeg").next(); imageWriter.setOutput(imageOut); ImageWriteParam writeParam = imageWriter.getDefaultWriteParam(); writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); writeParam.setCompressionType("JPEG"); writeParam.setCompressionQuality(1); imageWriter.write(null, new IIOImage(image, null, null), writeParam); } Quoting Mark Lowe <[EMAIL PROTECTED]>: > Not sure about the resize and save (3-4) but the rest i use for > ensuring users dont upload any old sizes.. > > > java.io.ByteArrayInputStream; > java.awt.image.BufferedImage; > javax.imageio.ImageIO; > > byte[] image = form.getImage().getFileData(); > ByteArrayInputStream stream = new ByteArrayInputStream(image); > BufferedImage img = ImageIO.read(stream); > > BufferedImage has getWidth and getHeight > > Perhaps also better not to use getFileData on the formFile, and use the > getInputStream method instead as its less heavy.. > > Mark > > On 27 Jul 2004, at 10:28, ron1 wrote: > > > Hi - > > after spending much time wondring through the JAI API I thought maybe > > one of you guys can help me: > > I need a very simple: > > 1. upload-image (jpg/gif) > > 2. getProps (size, width) > > 3. resize > > 4. save JPG with custom compression. > > The upload is done via FormFile, so I have the InputStream - all the > > rest via Java API - and I have no clue of where to get started :-( > > Cheers, > > Ron -- Kris Schneider <mailto:[EMAIL PROTECTED]> D.O.Tech <http://www.dotech.com/> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]