java 图片水印文字后面加颜色_JAVA给图片添加图片水印或文字水印

这是一个Java实现的工具类,用于在图片上添加文字或图片水印。方法包括`pressImage()`用于添加图片水印,`pressText()`用于添加文字水印。示例中展示了如何调用这两个方法在指定位置添加水印并保存结果。
摘要由CSDN通过智能技术生成

package test; import  java.awt.Color;   import  java.awt.Font;   import  java.awt.Graphics;   import  java.awt.Image;   import  java.awt.image.BufferedImage;   import  java.io.File;   import  java.io.FileOutputStream;   import  javax.imageio.ImageIO;   import  com.sun.image.codec.jpeg.JPEGCodec;   import  com.sun.image.codec.jpeg.JPEGImageEncoder;   public   final   class  ImageUtils {       public  ImageUtils() {       }       /**/ /*        * public final static String getPressImgPath() { return ApplicationContext        * .getRealPath("/template/data/util/shuiyin.gif"); }        */        /** */ /**        * 打印图片水印        *         * @param pressImg --        *            水印文件        * @param targetImg --        *            目标文件        * @param x        *            --x坐标  18698835507      * @param y        *            --y坐标        */        public   final   static   void  pressImage(String pressImg, String targetImg,               int  x,  int  y) {           try  {               //目标文件                File _file = new  File(targetImg);               Image src = ImageIO.read(_file);               int  wideth = src.getWidth( null );               int  height = src.getHeight( null );               BufferedImage image = new  BufferedImage(wideth, height,                       BufferedImage.TYPE_INT_RGB);               Graphics g = image.createGraphics();               g.drawImage(src, 0 ,  0 , wideth, height,  null );               //水印文件                File _filebiao = new  File(pressImg);               Image src_biao = ImageIO.read(_filebiao);               int  wideth_biao = src_biao.getWidth( null );               int  height_biao = src_biao.getHeight( null );               g.drawImage(src_biao, (wideth - wideth_biao) / 2 ,                       (height - height_biao) / 2 , wideth_biao, height_biao,  null );               //水印文件结束                g.dispose();               FileOutputStream out = new  FileOutputStream(targetImg);               JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);               encoder.encode(image);               out.close();           } catch  (Exception e) {               e.printStackTrace();           }       }       /** */ /**        * 打印文字水印图片        *         * @param pressText        *            --文字        * @param targetImg --        *            目标图片        * @param fontName --        *            字体名 字体:TimesRoman, Courier, Arial等       * @param fontStyle --        *            字体样式  风格:三个常量 Font.PLAIN, Font.BOLD, Font.ITALIC      * @param color --        *            字体颜色        * @param fontSize --        *            字体大小        * @param x --        *            偏移量        * @param y        */        public   static   void  pressText(String pressText, String targetImg,               String fontName, int  fontStyle,  int  fontSize, Color  color, int  x,               int  y) {           try  {               File _file = new  File(targetImg);               Image src = ImageIO.read(_file);               int  width = src.getWidth( null );               int  height = src.getHeight( null );               System.out.println("width:"+width);               System.out.println("height:"+height);               BufferedImage image = new  BufferedImage(width, height,                       BufferedImage.TYPE_INT_RGB);               Graphics g = image.createGraphics();               g.drawImage(src, 0 ,  0 , width, height,  null );               g.setColor(color);               g.setFont(new  Font(fontName, fontStyle, fontSize));             g.drawString(pressText, width - fontSize - x, height - fontSize                       / 2  - y);               g.dispose();               FileOutputStream out = new  FileOutputStream(targetImg);               JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);               encoder.encode(image);               out.close();           } catch  (Exception e) {               System.out.println(e);           }       }       public   static   void  main(String[] args) {           pressImage("F:/logo.png" ,"F:/123.jpg" ,0 ,0 );          System.out.println("打印图片水印   成功!!!");         pressText("巾帼建功", "F:/A1.jpg",  "宋体", Font.BOLD,28,Color.red,  120, 120);         System.out.println("打印文字水印图片  成功!!!");     }   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值