Temadown Wptr | Theme by mg12 | Valid XHTML 1.1 and CSS 3
  • 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
     

    1. <servlet>
    2.  <description></description>
    3.  <display-name>ImageResizer</display-name>
    4.  <servlet-name>ImageResizer</servlet-name>
    5.  <servlet-class>
    6.   com.vardar.util.image.ImageResizer
    7.  </servlet-class>
    8. </servlet>
    9. <servlet-mapping>
    10.  <servlet-name>ImageResizer</servlet-name>
    11.  <url-pattern>/ImageResizer</url-pattern>
    12. </servlet-mapping>

     

    Java kodu

    1. package com.vardar.utils.image;
    2.  
    3. import java.awt.AlphaComposite;
    4. import java.awt.Graphics2D;
    5. import java.awt.Image;
    6. import java.awt.image.BufferedImage;
    7. import java.io.BufferedOutputStream;
    8. import java.io.File;
    9. import java.io.FileOutputStream;
    10.  
    11. import javax.imageio.ImageIO;
    12. import javax.servlet.http.HttpServlet;
    13. import javax.servlet.http.HttpServletRequest;
    14. import javax.servlet.http.HttpServletResponse;
    15.  
    16. /**
    17.  * Servlet implementation class for Servlet: ImageResizer
    18.  *
    19.  */
    20. public class ImageResizer extends HttpServlet {
    21.     private static final long serialVersionUID = -8285774993751841288L;
    22.     public void doGet(HttpServletRequest request, HttpServletResponse response) {
    23.         String imageOutput = getParam(request, "output", "jpg");
    24.         String imageRoot = getParam(request, "root", "c:/upl/");
    25.         String imageFile = getParam(request, "file", "vardar.gif");
    26.         int width = Integer.parseInt(getParam(request, "width", "250"));
    27.         int height = Integer.parseInt(getParam(request, "height", "0"));
    28.         if ("png".equals(imageOutput)) {
    29.             response.setContentType("image/png");
    30.         } else {
    31.             response.setContentType("image/jpeg");
    32.         }
    33.         //String imageLoc = request.getSession().getServletContext().getRealPath(imageRoot) +"\\"+ imageFile;
    34.         String imageLoc = imageRoot+imageFile;
    35.         System.out.println("imageLoc = " + imageLoc);
    36.         if((new File(imageRoot+width+"x"+imageFile)).exists()){
    37.          System.out.println("Dosya var = " + imageRoot+width+"x"+imageFile);
    38.          try {
    39.           BufferedImage bufferedImage = ImageIO.read(new File(imageRoot+width+"x"+imageFile));
    40.           ImageIO.write(bufferedImage, imageOutput, response.getOutputStream());
    41.  
    42.          } catch (Exception e) {
    43.              System.out.println("Problem with image: " + imageLoc + e);
    44.          }
    45.      }
    46.         else{
    47.          System.out.println("Dosya yok ve yaratiliyor = " + imageRoot+width+"x"+imageFile);
    48.          try {
    49.              BufferedImage bufferedImage = ImageIO.read(new File(imageLoc));
    50.              int calcHeight = height &gt; 0 ? height : (width * bufferedImage.getHeight() / bufferedImage.getWidth());
    51.              ImageIO.write(createResizedCopy(bufferedImage, width, calcHeight), imageOutput
    52. , response.getOutputStream());
    53.  
    54.              BufferedOutputStream buf = new BufferedOutputStream(new FileOutputStream(imageRoot+width+"x"+imageFile));
    55.              ImageIO.write(createResizedCopy(bufferedImage, width, calcHeight), imageOutput, buf);
    56.              buf.flush();
    57.              buf.close();
    58.  
    59.          } catch (Exception e) {
    60.              System.out.println("Problem with image: " + imageLoc + e);
    61.          }
    62.         }
    63.     }
    64.     BufferedImage createResizedCopy(Image originalImage, int scaledWidth, int scaledHeight) {
    65.         BufferedImage scaledBI = new BufferedImage(scaledWidth, scaledHeight, BufferedImage.TYPE_INT_RGB);
    66.         Graphics2D g = scaledBI.createGraphics();
    67.         g.setComposite(AlphaComposite.Src);
    68.         g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null);
    69.         g.drawString("<a href="http://www.melihsakarya.com">www.melihsakarya.com</a>", 20, 20);
    70.         g.dispose();
    71.         return scaledBI;
    72.     }
    73.  
    74.     private String getParam(HttpServletRequest request, String param, String def) {
    75.         String parameter = request.getParameter(param);
    76.         if (parameter == null || "".equals(parameter)) {
    77.             return def;
    78.         } else {
    79.             return parameter;
    80.         }
    81.     }
    82. }
    Perşembe, Kasım 6th, 2008 at 10:34
No comments yet.

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
TOP