ffmepg入门学习十 java给图片添加水印


     
     
     
     
  1. package com.qihui.qxj.utils;
  2. import java.awt.Color;
  3. import java.awt.Font;
  4. import java.awt.Graphics2D;
  5. import java.awt.Image;
  6. import java.awt.image.BufferedImage;
  7. import java.io.File;
  8. import java.io.FileOutputStream;
  9. import java.io.IOException;
  10. import javax.imageio.ImageIO;
  11. public class Main {
  12. public static void main(String[] args) throws IOException {
  13. String sourceImg= "D:\\test.jpg"; //源图片地址
  14. String targetImg= "D:\\123.jpg"; //新存储的地址
  15. addWatermark(sourceImg, targetImg);
  16. }
  17. /** 设置文字水印
  18. * @param sourceImg 源图片路径
  19. * @param targetImg 保存的图片路径
  20. * @throws IOException
  21. */
  22. public static void addWatermark(String sourceImg, String targetImg) throws IOException {
  23. File srcImgFile = new File(sourceImg);
  24. Image srcImg = ImageIO.read(srcImgFile);
  25. int srcImgWidth = srcImg.getWidth( null);
  26. int srcImgHeight = srcImg.getHeight( null);
  27. int fontSize= 75;
  28. Font font = new Font( "黑体,Arial", 1, fontSize);
  29. BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);
  30. Graphics2D g = bufImg.createGraphics();
  31. g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
  32. g.setColor(Color.BLACK);
  33. g.setFont(font);
  34. //设置水印的坐标
  35. g.drawString( "测试", 3196, 150);
  36. g.drawString( "性别:男", 3196, 150+( 120* 1));
  37. g.drawString( "毕业学校:XXX大学", 3196, 150+( 120* 2));
  38. g.setColor(Color.white);
  39. font = new Font( "黑体,Arial", 1, 120);
  40. g.setFont(font);
  41. g.drawString( "广东省深圳(SHENZHEN)", 3000, 2020);
  42. g.dispose();
  43. // 输出图片
  44. FileOutputStream outImgStream = new FileOutputStream(targetImg);
  45. ImageIO.write(bufImg, "jpg", outImgStream);
  46. System.out.println( "添加水印完成");
  47. outImgStream.flush();
  48. outImgStream.close();
  49. }
  50. }

效果图: 

ffmepg入门学习十 java给图片添加水印_第1张图片

 可能有些朋友会存在,增加的文字水印没有效果的问题,那可能是图片的宽和高度有问题,需要调整代码的x,y坐标。

注意:图片的左上角为坐标的原点(0,0)  例如测试两个文字的坐标为(3196, 150)

我的原图为4090*2160

点击链接加入群聊【java交流群】:https://jq.qq.com/?_wv=1027&k=5VZxg3k

发布了277 篇原创文章 · 获赞 514 · 访问量 21万+

转载自:https://blog.csdn.net/qq_16855077/article/details/90378173

你可能感兴趣的:(FFmpeg音视频学习)