From 09dbe617823d7103c221bab4b3b3664a03a27f74 Mon Sep 17 00:00:00 2001 From: knut Date: Tue, 25 Mar 2008 16:23:28 +0000 Subject: [PATCH] Added support for specifying size as width or height by appending either w or h, for example size=504h --- src/org/forkalsrud/album/web/AlbumServlet.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/org/forkalsrud/album/web/AlbumServlet.java b/src/org/forkalsrud/album/web/AlbumServlet.java index 3263b7b..5885b73 100644 --- a/src/org/forkalsrud/album/web/AlbumServlet.java +++ b/src/org/forkalsrud/album/web/AlbumServlet.java @@ -96,7 +96,7 @@ public class AlbumServlet try { res.setContentType("image/jpeg"); - scaleImage(req, res, file, Integer.parseInt(req.getParameter("size"))); + scaleImage(req, res, file, req.getParameter("size")); } catch (Exception e) { throw new RuntimeException("sadness", e); } @@ -106,7 +106,7 @@ public class AlbumServlet } - void scaleImage(HttpServletRequest req, HttpServletResponse res, File file, int size) throws IOException, JpegProcessingException, MetadataException, ParseException { + void scaleImage(HttpServletRequest req, HttpServletResponse res, File file, String size) throws IOException, JpegProcessingException, MetadataException, ParseException { List entries = dao.read(file.getParentFile()); Entry entry = null; @@ -118,7 +118,17 @@ public class AlbumServlet } } Dimension orig = entry.getSize(); - Dimension outd = orig.scaled(size); + Dimension outd; + if (size.endsWith("h")) { + int height = Integer.parseInt(size.substring(0, size.length() - 1)); + outd = orig.scaleHeight(height); + } else if (size.endsWith("w")) { + int width = Integer.parseInt(size.substring(0, size.length() - 1)); + outd = orig.scaleWidth(width); + } else { + int worh = Integer.parseInt(size); + outd = orig.scaled(worh); + } Iterator readers = ImageIO.getImageReadersByFormatName("jpg"); ImageReader reader = readers.next();