设置密文在图片上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("水印添加完成");

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值