当前位置: 代码迷 >> J2SE >> Java 给图片平添水印后没有exif信息了
  详细解决方案

Java 给图片平添水印后没有exif信息了

热度:64   发布时间:2016-04-24 00:28:51.0
Java 给图片添加水印后没有exif信息了
从开源中国看到一段代码(http://www.oschina.net/code/snippet_116974_3309),用于给图片添加水印,测试后发现图片被压缩了,以前6M的照片变成2M了,但是图片的宽和高是没有改变的。而且图片的exif信息都清除了。
代码如下:
Java code
 /**     * 打印文字水印图片          * @param pressText     *            --文字     * @param targetImg --     *            目标图片     * @param fontName --     *            字体名     * @param fontStyle --     *            字体样式     * @param color --     *            字体颜色     * @param fontSize --     *            字体大小     * @param x --     *            偏移量     * @param y     */    public static void pressText(String pressText, String targetImg,            String fontName, int fontStyle, int color, int fontSize, int x,            int y) {        try {            File _file = new File(targetImg);            Image src = ImageIO.read(_file);            int wideth = src.getWidth(null);            int height = src.getHeight(null);            BufferedImage image = new BufferedImage(wideth, height,                    BufferedImage.TYPE_INT_RGB);            Graphics g = image.createGraphics();            g.drawImage(src, 0, 0, wideth, height, null);                        g.setColor(Color.RED);            g.setFont(new Font(fontName, fontStyle, fontSize));            g.drawString(pressText, wideth - fontSize - x, height - fontSize                    / 2 - y);            g.dispose();            FileOutputStream out = new FileOutputStream(targetImg);            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);            encoder.encode(image);            out.close();        } catch (Exception e) {            System.out.println(e);        }    }

我希望图片的质量大小都不要压缩,而且要保存exif信息不变。请问那位仁兄有好一点的方法?
最好是有代码,有思路也可以

------解决方案--------------------
http://kim.iteye.com/blog/45087
------解决方案--------------------
实在不行的话,可以先取出exif信息,加完水印后在写入吧
  相关解决方案