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("水印添加完成");
}
}
分享到:
相关推荐
在这里,我们为EditText设置了`inputType="textPassword"`,使其默认显示为密文。ImageView设置了一个点击事件`android:onClick="toggleVisibility"`,当用户点击时会调用对应的Java方法。 接下来,我们需要在...
2. 通过setCompoundDrawables()设置新的drawable,这可能是一个眼睛打开或闭合的图像,表示当前密码是否可见。 3. 修改inputType,使用EditorInfo.TYPE_TEXT_VARIATION_PASSWORD显示密文,使用EditorInfo.TYPE_TEXT_...
由于其体积小、质量相对较高,被广泛应用在互联网上传输和存储照片。然而,这样的便利性也可能导致图片内容的泄露。为了防止未经授权的访问,图片加密变得尤为重要。 批量加密是该工具的一大特点。用户无需逐一处理...
在数字化时代,我们常常需要处理大量的图片资源,无论是个人照片、设计素材还是工作文档,妥善管理和保护这些图片变得尤为重要。为此,出现了“图片打包加密小工具”这样的软件,它能有效地帮助用户将图片进行打包...
在Windows平台上,可以利用GDI+或.NET Framework中的System.Drawing命名空间提供的类来实现图片的加载与显示。 其次,程序需要判断拖动的文件是否为图片文件。这通常通过检查文件扩展名或者读取文件头信息来实现。...
图片加密是通过特定的算法将原始图片数据转换成不可读的密文,以此来保护图片内容不被未经授权的人轻易解码和查看。在交图系统中,这种技术的应用使得设计师可以安心地分享高清晰度的设计草图、渲染图或者3D模型,...
2. 设置压缩级别,平衡压缩率和图像质量。 3. 创建并输入一个强密码,用于加密图片数据。 4. 开始处理,工具会执行压缩和加密操作,并生成新的加密PNG文件。 5. 保存加密后的文件,确保备份解密密钥以备后续使用。 ...
在加密过程中,原始的图片数据会被转化为一串密文,只有拥有正确密钥的人才能解密并恢复成原始的图片。 使用“weibo-img-crypto”库时,开发者首先需要加载库文件,例如“xfgryujk-weibo-img-crypto-dc9b5f2”可能...
Base64是一种将任意二进制数据转换为可打印字符的方法,常用于在网络上传输图片或者在JSON中嵌入图片数据。在JMeter中,这个功能可以帮助测试人员将本地图片文件集成到HTTP请求中,例如作为POST请求的多媒体内容。...
配置文档会指导用户如何在8tupian图片加密平台上集成这个支付方式,包括申请支付宝商户账号、获取API接口权限等步骤。 4. **申请签约支付宝当面付的教程**:这个教程详细解释了如何申请成为支付宝的商户,并完成...
首先创建一个`Bitmap`对象作为图像载体,然后通过`Graphics.FromImage`方法获取绘图对象,设置字体、颜色等属性,最后调用`DrawString`方法将文字绘制到图片上。完成后,使用`Save`方法保存为图片文件。 2. **文字...
在C#中,我们可以创建一个AesManaged对象,设置其Key和IV(初始化向量)为图片生成的密钥。然后,使用Encrypt方法对文本文件进行加密,将加密后的数据写入新的文件。 3. **加密过程**:在加密文本文件时,我们需要...
加载图像后,HEX函数提取图像HEX码,十六进制码被转换成密文取决于RSA的设置。 相反,密文被加载,然后应用RSA算法,然后破译的文字,结果字符串转换成图像。 注意: 开发环境为Visual Studio 2010。
加载图像后,HEX函数提取图像HEX码,十六进制码被转换成密文取决于RSA的设置。 相反,密文被加载,然后应用RSA算法,然后破译的文字,结果字符串转换成图像。 注意: 开发环境为Visual Studio 2010。
然而,在实际工作中,网络管理员可能会遇到路由器管理密码遗忘的情况,这不仅会给日常工作带来不便,还可能影响网络安全。本文将以H3C公司的MSR系列路由器为例,详细介绍几种常见的路由器密码恢复方法。 #### 二、...
在Windows上,可通过MinGW加载OpenSSL库。 3. **加密/解密命令**:使用`openssl enc`命令进行文件的加密和解密。命令的基本结构是`openssl enc ciphertype -e -in plaintextfile -out ciphertextfile -K key -iv IV...
365文档外发防扩散系统采用无源加密技术可以将任意类型文件转换为图片影像序列,经过加密处理和全新设置后生成一个加密的自浏览文件。该文件通过U盘、邮件、Internet等方式将文件交付给对方,在对方电脑上双击运行...