Image Resize
Asagida image lari resize eden bir servlet bulabilirsiniz. Buna gore gonderdiginiz parametreler uzerinden resize islemi yapilabilir.
Kod cagirimi asagidaki gibi olacaktir
www.melihsakarya.com/ImageResize?file=demo.gif&width=200
Servlet tanimi
<servlet> <description></description> <display-name>ImageResizer</display-name> <servlet-name>ImageResizer</servlet-name> <servlet-class> com.vardar.util.image.ImageResizer </servlet-class> </servlet> <servlet-mapping> <servlet-name>ImageResizer</servlet-name> <url-pattern>/ImageResizer</url-pattern> </servlet-mapping>
Java kodu
package com.vardar.utils.image; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import javax.imageio.ImageIO; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class for Servlet: ImageResizer * */ public class ImageResizer extends HttpServlet { private static final long serialVersionUID = -8285774993751841288L; public void doGet(HttpServletRequest request, HttpServletResponse response) { String imageOutput = getParam(request, "output", "jpg"); String imageRoot = getParam(request, "root", "c:/upl/"); String imageFile = getParam(request, "file", "vardar.gif"); int width = Integer.parseInt(getParam(request, "width", "250")); int height = Integer.parseInt(getParam(request, "height", "0")); if ("png".equals(imageOutput)) { response.setContentType("image/png"); } else { response.setContentType("image/jpeg"); } //String imageLoc = request.getSession().getServletContext().getRealPath(imageRoot) +"\\"+ imageFile; String imageLoc = imageRoot+imageFile; System.out.println("imageLoc = " + imageLoc); if((new File(imageRoot+width+"x"+imageFile)).exists()){ System.out.println("Dosya var = " + imageRoot+width+"x"+imageFile); try { BufferedImage bufferedImage = ImageIO.read(new File(imageRoot+width+"x"+imageFile)); ImageIO.write(bufferedImage, imageOutput, response.getOutputStream()); } catch (Exception e) { System.out.println("Problem with image: " + imageLoc + e); } } else{ System.out.println("Dosya yok ve yaratiliyor = " + imageRoot+width+"x"+imageFile); try { BufferedImage bufferedImage = ImageIO.read(new File(imageLoc)); int calcHeight = height > 0 ? height : (width * bufferedImage.getHeight() / bufferedImage.getWidth()); ImageIO.write(createResizedCopy(bufferedImage, width, calcHeight), imageOutput , response.getOutputStream()); BufferedOutputStream buf = new BufferedOutputStream(new FileOutputStream(imageRoot+width+"x"+imageFile)); ImageIO.write(createResizedCopy(bufferedImage, width, calcHeight), imageOutput, buf); buf.flush(); buf.close(); } catch (Exception e) { System.out.println("Problem with image: " + imageLoc + e); } } } BufferedImage createResizedCopy(Image originalImage, int scaledWidth, int scaledHeight) { BufferedImage scaledBI = new BufferedImage(scaledWidth, scaledHeight, BufferedImage.TYPE_INT_RGB); Graphics2D g = scaledBI.createGraphics(); g.setComposite(AlphaComposite.Src); g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null); g.drawString("www.melihsakarya.com", 20, 20); g.dispose(); return scaledBI; } private String getParam(HttpServletRequest request, String param, String def) { String parameter = request.getParameter(param); if (parameter == null || "".equals(parameter)) { return def; } else { return parameter; } } }
03 Haziran 2008, 16:49 tarihinde.
Üstat sitenizi yeni gördüm.
Hayırlı olsun.
Tebrikler.
http://www.suatatan.wordpress.com