Java给图片添加文字水印
来源:互联网 发布:java软件开发笔试题 编辑:程序博客网 时间:2024/04/28 17:17
闲着没事,研究了下图片水印的事儿,图片水印虽然恶心,而且大大的影响了图片的美观,试想一下,一张美女的性感写真照,下方来了个大大的水印“XXXX所有”,看着那猥琐的文字水印,是不是很倒胃口?但是不可否认,水印是预防盗图的最有效的手段之一。
上面纯属扯淡,下面说正事。
正事无关紧要,代码最重要!
直接上代码
import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import javax.imageio.ImageIO; /** * 图片添加文字水印 * @author 李锋镝 * @blog http://www.lifengdi.com * 2016-4-29 下午4:27:46 * */public class ImageUtils { /** * @param args */ public static void main(String[] args) { String srcImgPath = "F:/000.jpg"; String logoText = "http://www.lifengdi.com"; String targerPath = "F:/001.jpg"; String targerPath2 = "F:/002.jpg"; // 给图片添加水印 ImageUtils.markByText(logoText, srcImgPath, targerPath); // 给图片添加水印,水印旋转-45度 ImageUtils.markByText(logoText, srcImgPath, targerPath2, -45); } /** * 给图片添加水印 * * @param logoText * 水印文字 * @param srcImgPath * 图片路径 * @param targerPath * 添加水印后生成的图片的路径 */ public static void markByText(String logoText, String srcImgPath, String targerPath) { markByText(logoText, srcImgPath, targerPath, null); } /** * 给图片添加水印、可设置水印的旋转角度 * * @param logoText * 水印文字 * @param srcImgPath * 图片路径 * @param targerPath * 添加水印后生成的图片的路径 * @param degree * 水印旋转 */ public static void markByText(String logoText, String srcImgPath, String targerPath, Integer degree) { // 主图片的路径 InputStream is = null; OutputStream os = null; try { Image srcImg = ImageIO.read(new File(srcImgPath)); BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null), srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB); // 得到画笔对象 // Graphics g= buffImg.getGraphics(); Graphics2D g = buffImg.createGraphics(); // 设置对线段的锯齿状边缘处理 g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg .getHeight(null), Image.SCALE_SMOOTH), 0, 0, null); if (null != degree) { // 设置水印旋转 g.rotate(Math.toRadians(degree), (double) buffImg.getWidth() / 2, (double) buffImg .getHeight() / 2); } // 设置颜色 g.setColor(Color.white); // 设置 Font g.setFont(new Font("仿宋", Font.BOLD, 30)); // 设置透明度 float alpha = 0.8f; g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha)); // 第一参数->设置的水印内容,后面两个参数->文字在图片上的坐标位置(x,y) 具体可以看API int width=srcImg.getWidth(null); int height=srcImg.getHeight(null); g.drawString(logoText, width-400, height-10); //这里是计算了下水印的长度和高度,让水印生成在图片右下角 g.dispose(); // os = new FileOutputStream(srcImgPath); os = new FileOutputStream(targerPath); // 生成图片 ImageIO.write(buffImg, "JPG", os); System.out.println("图片完成添加文字印章。。。。。。"); } catch (Exception e) { e.printStackTrace(); } finally { try { if (null != is) is.close(); } catch (Exception e) { e.printStackTrace(); } try { if (null != os) os.close(); } catch (Exception e) { e.printStackTrace(); } } } }
看着也不复杂、、有用的上的,就拿去用吧
0 0
- Java给图片添加图片、文字水印
- JAVA给图片上添加水印文字
- java给图片添加水印文字
- java给图片添加水印文字
- java给图片添加水印文字
- Java给图片添加文字水印
- JAVA给图片添加图片水印或文字水印
- java给图片添加图片水印,文字水印,马赛克
- 给图片添加文字水印
- 给图片添加文字水印
- Java添加水印+图片水印+文字水印
- Java给图片添加水印(图标和文字)
- java实现给图片添加水印和文字
- java实现给图片添加水印和文字
- java给图片添加文字水印并消除锯齿
- 用Java实现给图片添加文字水印
- 给图片添加水印图片文字
- java给图片加水印,文字水印
- 上海用友T1代理商,客户硬盘坏道不能拷贝复制mdf/ldf数据库sql2005修复
- LaTeX新人教程,30分钟从完全陌生到基本入门
- Spring4--Hello World实例
- ORACLE 禁用/启用外键和触发器
- MS-OFFICE2013之EXCEL神器-Power Map数据地图可视化范例
- Java给图片添加文字水印
- Android快速开发,十个最常用的框架
- 浏览器 获取图片width 和height 的方法
- 欢迎使用CSDN-markdown编辑器
- 截图src ,截图<>
- Intel IDE 2015 注册码
- ActiveMQ学习总结(6)——ActiveMQ集成Spring和Log4j实现异步日志
- 苹果手机各版本分辨率
- maven项目中spring常用的dependency