美文网首页
java图片添加水印

java图片添加水印

作者: hbh404 | 来源:发表于2017-01-10 10:47 被阅读0次
  /**
 * 添加水印的图片地址, 水印图片地址, 输出地址, 水印旋转度数
 * @param iconPath 添加水印的图片地址
 * @param srcImagePath 水印图片地址
 * @param targerPath 输出地址
 * @param degree 水印旋转度数
 * @return
 */
public static boolean markImageByIcon(String iconPath, String srcImagePath,
        String targerPath, Integer degree) {
    OutputStream os = null;
    try {
        Image srcImage = ImageIO.read(new File(srcImagePath));
        BufferedImage bufferImg = new BufferedImage(
                srcImage.getWidth(null), srcImage.getHeight(null),
                BufferedImage.TYPE_INT_RGB);
        Graphics2D g = bufferImg.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        g.drawImage(srcImage.getScaledInstance(srcImage.getWidth(null),
                srcImage.getHeight(null), BufferedImage.TYPE_INT_RGB), 0,
                0, null);
        if (null != degree) {
            g.rotate(Math.toDegrees(degree),
                    (double) bufferImg.getWidth() / 2,
                    (double) bufferImg.getHeight() / 2);
        }
        
        ImageIcon imageIcon = new ImageIcon(iconPath);
        Image img = imageIcon.getImage();
        
        float alpha = 0.5f;
        
        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));
    
        g.drawImage(img, 150, 300, null);
        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
        g.dispose();
        os = new FileOutputStream(targerPath);
        ImageIO.write(bufferImg, "JPG", os);
        
    } catch (IOException e) {
        System.out.println("添加水印时出现异常");
    } finally{
        if(null != os){
            try {
                os.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return true;
}

相关文章

网友评论

      本文标题:java图片添加水印

      本文链接:https://www.haomeiwen.com/subject/mpskbttx.html