登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: [java/jpg/jpeg/rt.jar]java 图片水印     [回主站]     [分站链接]
标题
[java/jpg/jpeg/rt.jar]java 图片水印
clq
浏览(0) + 2010-01-18 20:04:59 发表 编辑

关键字:

java 图片水印

这里用到了 sun 的 rt.jar 文件,但仍然要在项目中引入. 这个可能是因为这个 jpeg 处理包不算 java 标准所致的吧.

clq
2010-1-18 20:05:25 发表 编辑


    //图片水印
    void MarkImage(String imgpath) //throws IOException
    {
        try
        {
            java.io.OutputStream out;
            //out = new FileOutputStream("c:\\1.jpg");
            //out = new FileOutputStream(imgpath);


            int width = 500;
            int height = 500;

            /*
            BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            Graphics2D g = bi.createGraphics();
            g.setBackground(Color.GRAY);
            g.clearRect(0, 0, width, height);
            g.setColor(Color.RED);
            */

            //原图
            imgpath = imgpath.replaceAll("\\\\","/");
            //ImageIcon imgIcon=new ImageIcon( imgpath + "card/card.jpg");  //这是本地的一张图片
            ImageIcon imgIcon = new ImageIcon(imgpath);  //这是本地的一张图片
            Image oldImg = imgIcon.getImage();
            //BufferedImage image = javax.ImageIO.read(new FileInputStream(imgpath));

            //新图
            //BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            BufferedImage bi = new BufferedImage(oldImg.getWidth(null), oldImg.getHeight(null) + 16, BufferedImage.TYPE_INT_RGB);
            Graphics2D g = bi.createGraphics();
            g.setBackground(Color.BLACK);//g.setBackground(Color.GRAY);
            g.clearRect(0, 0, width, height);
            g.setColor(Color.RED);

            //复制
            g.drawImage(oldImg, 0, 0, null );

            String fontFamily = "宋体";//"隶书";
            java.awt.Font font=new java.awt.Font(fontFamily, java.awt.Font.PLAIN, 12);//20);
            g.setFont(font);
            //g.drawString("name中文", 250, 120);
            g.setColor(Color.WHITE);
            //g.drawString("name中文", 2, oldImg.getHeight(null) + 12);
            g.drawString(imgMark, 2, oldImg.getHeight(null) + 12);


            g.dispose();
            bi.flush();
            // encode:

            //关闭原图片
            //oldImg = null;
            //imgIcon = null;
            out = new FileOutputStream(imgpath);//放在前面的话会毁掉原图片

            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
            JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
            //param.setQuality(100f, false);
            //param.setQuality(0.75f, false);
            param.setQuality(0.95f, false);
            encoder.setJPEGEncodeParam(param);

            encoder.encode(bi);
            
            //try
            //{
            //    encoder.encode(bi);
            //}
            //catch(IOException ioe)
            //{
            //    ioe.printStackTrace();
            //}

            out.close();//没有这个文件就锁定
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }



clq
2010-1-18 20:05:47 发表 编辑

import java.awt.image.*;
import java.awt.*;
import javax.swing.ImageIcon;
import com.sun.image.codec.jpeg.*;


clq
2010-3-7 12:13:46 发表 编辑

奇怪,还得是 jre 下面的,而不是 jdk/jre 下面的。


总数:3 页次:1/1 首页 尾页  
总数:3 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1