Java开发文字水印

来源:互联网 发布:vcd音频提取软件 编辑:程序博客网 时间:2024/06/15 22:12

这个跟上次的图片水印差不多,全部封装在一个方法里,然后使用main方法测试,在本地生成图片就可以看到效果了

效果图
这里写图片描述

/**     * 打印文字水印     *      * @param text     *            文本内容     * @param targetImg     *            需要被打水印的图片     * @param fontName     *            字体名     * @param fontStyle     *            字体样式     * @param fontSize     *            字体大小     * @param x     *            坐标     * @param y     *            坐标     * @return void     */    public static void getTextMark(String text, String targetImg, String fontName, int fontStyle, int fontSize, int x,            int y) {        // 实例化需要被打水印的图片        File file = new File(targetImg);        try {            // 将文件转换成图片的对象            Image img = ImageIO.read(file);            // 获取图片的宽度与高度            int width = img.getWidth(null);            int height = img.getHeight(null);            // 将图片加载到内存中            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);            // 绘制图片            Graphics g = image.createGraphics();            // 绘制指定图像 缩放到指定矩形区域 这里需要从0 0 坐标开始            g.drawImage(img, 0, 0, width, height, null);            //设置字体颜色            g.setColor(Color.ORANGE);            //设置字体样式            g.setFont(new Font(fontName,fontStyle,fontSize));            //打水印            g.drawString(text, x, y);            //// 结束对文件对象的处理            g.dispose();            // 获取文件路劲            String pathName = file.getParentFile().getAbsolutePath();            // 给文件命名            String fileName = pathName + "/" + new Date().getTime() + ".jpg";            System.out.println(fileName);            // 输出打印好水印的文件            FileOutputStream fos = new FileOutputStream(fileName);            // JPEGCodec 用来创建一个和指定输出流关联            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);            encoder.encode(image);            // 关闭流            fos.close();            System.out.println("文字水印打印成功!");        } catch (Exception e) {            e.printStackTrace();        }    }
main方法测试public static void main(String[] args) {            String text = "晚安各位!";        String textImg = "C:\\Users\\Administrator\\Desktop\\array\\time\\3.jpg";        getTextMark(text,textImg,"微软雅黑",16,45,100,200);    }