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("水印添加完成");
}
}
分享到:
相关推荐
在项目中遇到需要提供给用户一个密码输入框明文/密文切换显示的需求,在网上搜索一圈都没有发现完整的实现,幸而找到了一个实现的思路。 先上效果图,看了录制屏幕gif的教程,无奈手机太旧系统版本不支持,只有上...
加载图像后,HEX函数提取图像HEX码,十六进制码被转换成密文取决于RSA的设置。 相反,密文被加载,然后应用RSA算法,然后破译的文字,结果字符串转换成图像。 注意: 开发环境为Visual Studio 2010。
加载图像后,HEX函数提取图像HEX码,十六进制码被转换成密文取决于RSA的设置。 相反,密文被加载,然后应用RSA算法,然后破译的文字,结果字符串转换成图像。 注意: 开发环境为Visual Studio 2010。
365文档外发防扩散系统采用无源加密技术可以将任意类型文件转换为图片影像序列,经过加密处理和全新设置后生成一个加密的自浏览文件。该文件通过U盘、邮件、Internet等方式将文件交付给对方,在对方电脑上双击运行...
图片相关→ImageUtils.java 完善ing 键盘相关→KeyboardUtils.java 避免输入法面板遮挡 动态隐藏软键盘 hideSoftInput 点击屏幕空白区域隐藏软键盘(注释萌萌哒) clickBlankArea2HideSoftInput0 动态显示软键盘 ...
加载图像后,HEX函数提取图像HEX码,十六进制码被转换成密文取决于RSA的设置。 相反,密文被加载,然后应用RSA算法,然后破译的文字,结果字符串转换成图像。 注意: 开发环境为Visual Studio 2010。
一幅图片在最大限度上隐藏外部文件后,画质依然清晰,色彩过渡仍很平滑,基本不存在色块问题。这种算法理论上还未达到极限,后续版本中还将继续改进算法使画质进一步提升。★引领数据压缩领域新潮流! 目前最先进的...
3,加密信息 加密信息功能提供对原文进行指定密钥的加密,同样对方需要知道您加密的指定密钥以及密文通过解密功能看到您的重要消息,比如我们在网络上要通知朋友银行卡号,或者手机号,或者家庭住宅等涉及自己隐私...
【窗口锁】通过设置适当的关键词,您可以:在不作任何改变的情况下为特定程序加把密码锁(比如一些系统相关软件);禁止特定程序的运行(比如BT、QQ、游戏);屏蔽广告、不键康网址等等。 【粉碎机】免除敏感信息...
6 仿真检验 7 功能分析 7 综述 8 参考资料 8 附录A——竞赛经历与感想 8 1、如何进行消息加密解密 8 2、如何调试程序 9 3、如何设置加密消息格式 9 我们的照片 10 一种基于身份的邮件加密与认证方法 沈雨祥 东南大学...
一款免费易用的文本加密与解密工具,它可以将指定的文本加密成无法识别的乱码,内置动态加密与静态加密模式,动态加密需要设置密码,生成的密文需要有密码才能解密,而静态加密则是直接将明文转换为密文。...
在万兴PDF编辑器的帮助下,您可以添加、删除、剪切、复制、粘贴、编辑、编辑图片和许多其他操作到现有的PDF文档中。您还可以从各种格式的文档中创建PDF,如word、excel、ppt、图片、txt等。不仅如此,您还可以将PDF...
记在自己电脑上怕遗失,记在网上又怕被黑客攻击而泄露,所以这时你需要这个简单有效的加密方式,不增加内容的长度,看上去也跟别的日志没有区别,要看的时候,自己输入密码看就是,如果是IE等浏览器有插件设置好的话...
由于我的sql语句严格控制在ms级别,所以只需要几百ms,数据即可拿到,此时渲染在页面上给用户的感觉很快) 3、sql语句的控制,本站的所有sql语句,均控制在1s以下。这块我花了很长时间进行sql优化,我举个例子:为了...
- 类似:-、_、.等合法字符集范围之外的...3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
答案:N WWW是一种基于超文本方式的信息查询工具,可在Internet上组织和呈现相关的信息和图像.答案:Y A 按通信传输的介质的性质划分,计算机网络分为局域网和广域网。答案:N C 操作系统既是硬件与其他软件的接口,又...
(2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加两个GroupBox 容器控件,其中, 在第一个GroupBox 中放入3 个TextBox 控件和一个Button 按钮,分别用于输入数字、输入加密数字、显示加 密后的数字和...