- if(!file.exists())
- file = new File((new StringBuilder()).append(s1).append(".xcf").toString());
- if(!file.exists())
- file = new File((new StringBuilder()).append(s1).append(".gif").toString());
- if(!file.exists())
- file = new File((new StringBuilder()).append(s1).append(".jpeg").toString());
- System.out.println((new StringBuilder()).append("path is ").append(file.getAbsolutePath()).toString());
- ImageInfo imageinfo = new ImageInfo(file.getAbsolutePath());
- imageinfo.setColorspace(12);
- imageinfo.setSubimage(0);
- MagickImage magickimage = new MagickImage(imageinfo);
- Dimension dimension = magickimage.getDimension();
- int i = (int)dimension.getWidth();
- int j = (int)dimension.getHeight();
- String s2 = httpservletrequest.getParameter("width");
- String s3 = httpservletrequest.getParameter("height");
- if(s2 != null && s3 != null)
- magickimage = magickimage.sampleImage(Integer.parseInt(s2), Integer.parseInt(s3));
- else
- if(s2 != null)
- {
- int k = Integer.parseInt(s2);
- magickimage = magickimage.sampleImage(k, (k * j) / i);
- } else
- if(s3 != null)
- {
- int l = Integer.parseInt(s3);
- magickimage = magickimage.sampleImage((i * l) / j, l);
+ if (!file.exists()) file = new File((new StringBuilder()).append(s1).append(".psd").toString());
+ if (!file.exists()) file = new File((new StringBuilder()).append(s1).append(".gif").toString());
+ if (!file.exists()) file = new File((new StringBuilder()).append(s1).append(".jpeg").toString());
+ if (file.getAbsolutePath().endsWith(".gif")) {
+ resp.setContentType("image/gif");
+ // FIXME slow
+ resp.getOutputStream().write(InputStreamToByteArray.convert(new FileInputStream(file)));
+ } else if (file.getAbsolutePath().endsWith(".jpeg")) {
+ resp.setContentType("image/jpeg");
+ // FIXME slow
+ resp.getOutputStream().write(InputStreamToByteArray.convert(new FileInputStream(file)));
+ } else if (file.getAbsolutePath().endsWith(".png")) {
+ resp.setContentType("image/png");
+ // FIXME slow
+ resp.getOutputStream().write(InputStreamToByteArray.convert(new FileInputStream(file)));
+ } else if (file.getAbsolutePath().endsWith(".psd")) {
+ PSDReader psdr = new PSDReader();
+ psdr.read(new FileInputStream(file));
+ Image img = psdr.getImage();
+ if (req.getParameter("height") != null) {
+ int height = Integer.parseInt(req.getParameter("height"));
+ int width = (img.getWidth(null) * height) / img.getHeight(null);
+ img = ((BufferedImage)img).getScaledInstance(width, height, Image.SCALE_SMOOTH);
+ }
+ System.out.println("bufferedimage is " + img);
+ if (!(img instanceof BufferedImage)) {
+ BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB);
+ bi.getGraphics().drawImage(img, 0, 0, null);
+ img = bi;
+ }
+ PngEncoderB pngenc = new PngEncoderB((BufferedImage)img, true);
+ resp.setContentType("image/png");
+ // FIXME slow
+ resp.getOutputStream().write(pngenc.pngEncode(true));