java 中文水印

来源:互联网 发布:淘宝优化宝贝的软件 编辑:程序博客网 时间:2024/06/05 17:44
/**
     * 给图片添加文字水印     * @param pressText 水印文字     * @param srcImageFile 源图像地址     * @param destImageFile 目标图像地址     * @param fontName 水印的字体名称     * @param fontStyle 水印的字体样式     * @param color 水印的字体颜色     * @param fontSize 水印的字体大小     * @param x 修正值     * @param y 修正值     * @param alpha 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字     */    public final static void pressText(String pressText,            String srcImageFile, String destImageFile, String fontName,            int fontStyle, Color color, int fontSize,int x,            int y, float alpha) {        try {            File img = new File(srcImageFile);            Image src = ImageIO.read(img);            int width = src.getWidth(null);            int height = src.getHeight(null);            BufferedImage image = new BufferedImage(width, height,                    BufferedImage.TYPE_INT_RGB);            Graphics2D g = image.createGraphics();                        g.drawImage(src, 0, 0, width, height, null);            g.setColor(color);            g.setFont(new Font(fontName, fontStyle, fontSize));            g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,                    alpha));            // 在指定坐标绘制水印文字            g.drawString(pressText, (width - (getLength(pressText) * fontSize))/ 2 + x, (height - fontSize) / 2 + y);            g.dispose();            ImageIO.write((BufferedImage) image, "JPEG", new File(destImageFile));// 输出到文件流        } catch (Exception e) {            e.printStackTrace();        }    }
  */    public static void main(String[] args) {        ImageUtils.pressText("我是水印文字","c:/abc.jpg","c:/abc_pressText.jpg","宋体",Font.BOLD,Color.white,80, 0, 0, 0.2f);//测试OK    }