`
dada_fangfang
  • 浏览: 144434 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

图片上水印(转)

 
阅读更多
public class Helloworld 

     
    /**
     * 给图片添加水印
     * 
     * @param filePath 需要添加水印的图片的路径
     * @param markContent 水印的文字
     * @param markContentColor 水印文字的颜色
     * @param qualNum 图片质量
     * @return
     */ 
    public void mark(String srcImgPath, String outImgPath, String watermarkStr) 
    { 
        try 
        { 
            // 读取原图片信息 
            File srcImgFile = new File(srcImgPath); 
            Image srcImg = ImageIO.read(srcImgFile); 
            int srcImgWidth = srcImg.getWidth(null); 
            int srcImgHeight = srcImg.getHeight(null); 
            // 加水印 
            BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB); 
            Graphics2D g = bufImg.createGraphics(); 
             
            g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null); 
             
            Font font = new Font("宋体", Font.PLAIN, 100); 
            g.setColor(Color.RED); // 根据图片的背景设置水印颜色 
             
            g.setFont(font); 
            int x = (srcImgWidth - getWatermarkLength(watermarkStr, g)) / 2; 
            int y = srcImgHeight / 2; 
            g.drawString(watermarkStr, x, y); 
             
            g.dispose(); 
            // 输出图片 
            FileOutputStream outImgStream = new FileOutputStream(outImgPath); 
            ImageIO.write(bufImg, "jpg", outImgStream); 
            outImgStream.flush(); 
            outImgStream.close(); 
        } 
        catch (Exception e) 
        { 
            e.printStackTrace(); 
        } 
    } 
     
    // 获取水印文字总长度 
    public int getWatermarkLength(String str, Graphics2D g) 
    { 
        return g.getFontMetrics(g.getFont()).charsWidth(str.toCharArray(), 0, str.length()); 
    } 
     
    public static void main(String[] args) 
    { // 原图位置, 输出图片位置, 水印文字 
        new Helloworld().mark("C:\\Documents and Settings\\yanwj06282\\桌面\\饭盒.jpg", "C:\\Documents and Settings\\yanwj06282\\桌面\\饭盒.jpg", "不吃饭,切JJ!!"); 
    } 
     
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics