Package org.shaitu.easyphoto.image

Source Code of org.shaitu.easyphoto.image.RoundCornerImage

/**
* COPYRIGHT. Harry Wu 2010. ALL RIGHTS RESERVED.
* Project: ThirdEye
* Author: Harry Wu <harrywu304@gmail.com>
* Created On: Oct 13, 2008 4:57:38 PM
*
*/
package org.shaitu.easyphoto.image;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Area;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.util.logging.Logger;

import org.shaitu.easyphoto.vo.ImageActionVO;




/**
* Decorator to round image corners
* @author whx
*
*/
public class RoundCornerImage extends BaseDecorativeImage {
  /**
   * log instance
   */
  private static final Logger logger = Logger.getLogger(RoundCornerImage.class.getName());
 
  /**
   * RoundCornerImage constructor
   * @param image image for wrap
   */
  public RoundCornerImage(DecorativeImage di){
    super(di);
  }

  /* (non-Javadoc)
   * @see net.dxtop.thirdeye.image.DecorativeImage#decorate()
   */
  @Override
  public boolean decorate(ImageActionVO vo) {
    di.decorate(vo);
    this.round(vo);
    return true;
  }
 
  /**
   * make image corners round
   * @return success return true, otherwise false
   */
  private boolean round(ImageActionVO vo){
    BufferedImage srcImg = vo.getBufferedImage();
    int srcWidth = srcImg.getWidth();
    int srcHeight = srcImg.getHeight();
    Graphics2D g = srcImg.createGraphics();
    g.setColor(Color.WHITE);
    Area rect = new Area(new Rectangle2D.Double(0,0,srcWidth,srcHeight));
    Area rectRound = new Area(new RoundRectangle2D.Double(0,0,srcWidth,srcHeight,
                vo.getParams().getCornerSize(),vo.getParams().getCornerSize()));
    rect.exclusiveOr(rectRound);
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
        RenderingHints.VALUE_ANTIALIAS_ON);
    g.clip(rect);
    g.fill(g.getClip());
    g.dispose();
    return true;
  }
}
TOP

Related Classes of org.shaitu.easyphoto.image.RoundCornerImage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.