当前位置: 代码迷 >> Web前端 >> 设置密文在图片下2
  详细解决方案

设置密文在图片下2

热度:95   发布时间:2012-09-16 17:33:16.0
设置密文在图片上2
public static void main(String[] args)
        throws Exception
    {
        // 需要添加水印的图片的路径
        InputStream is = new FileInputStream("WebRoot/images/ab.jpg");
        // 通过JPEG图象流创建JPEG数据流解码器
        JPEGImageDecoder jpegDecoder = JPEGCodec.createJPEGDecoder(is);
        // 解码当前JPEG数据流,返回BufferedImage对象
        BufferedImage buffImg = jpegDecoder.decodeAsBufferedImage();
        // 得到画笔对象
        Graphics g = buffImg.getGraphics();
        // 创建你要附加的图象。
        // 需要添加的图片水印
        ImageIcon imgIcon = new ImageIcon("WebRoot/images/ac.jpg");
        // 得到Image对象。
        Image img = imgIcon.getImage();
        // 将小图片绘到大图片上。
        // x,y .表示你的小图片在大图片上的位置。
        g.drawImage(img, 0, 0, null);
        String onOff = "0"; // o or 1
        int buffHeight_ = 93;
        g.setColor(new Color(239 + 7, 253 + 2, 238 + 7));
        Font fonts = new Font("宋体", Font.BOLD, 40);
        g.setFont(fonts);
        String strEnc = "";
        addCipherText(g, onOff, buffHeight_, strEnc);
        // 设置颜色。
        g.setColor(Color.BLACK);
       
        Font font = new Font("宋体", Font.PLAIN, 16);
        g.setFont(font);
        FontMetrics fm = g.getFontMetrics(font);
        // 设置换行操作
        int fontHeight = fm.getHeight(); // 字符的高度
       
        int offsetLeft = 16;
        int rowIndex = 2;
        int buffHeight = 200;
       
        //内容
        String content = "尊敬的用户,请登录后继续阅读!";
       
        for (int i = 0; i < content.length(); i++)
        {
            char c = content.charAt(i);
            int charWidth = fm.charWidth(c); // 字符的宽度
            // 另起一行
            if (Character.isISOControl(c) || offsetLeft >= (920 - charWidth))
            {
                rowIndex++;
                offsetLeft = 16;
            }
            if (rowIndex * fontHeight >= buffHeight - fontHeight)
            {
                break;
            }
            g.drawString(String.valueOf(c), offsetLeft, rowIndex * fontHeight); // 把一个个写到图片上
            offsetLeft += charWidth; // 设置下字符的间距
        }
       
        g.dispose();
       
        OutputStream os = new FileOutputStream("WebRoot/images/abc.jpg");
       
        // 创键编码器,用于编码内存中的图象数据。
        JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(os);
        en.encode(buffImg);
       
        is.close();
        os.close();
       
        System.out.println("水印添加完成");
       
    }
}
  相关解决方案