zoukankan      html  css  js  c++  java
  • java:给图片上加水印

    import java.awt.Color;
    import java.awt.Graphics2D;
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    import java.io.FileOutputStream;
    
    import javax.swing.ImageIcon;
    
    import com.sun.image.codec.jpeg.JPEGCodec;
    import com.sun.image.codec.jpeg.JPEGEncodeParam;
    import com.sun.image.codec.jpeg.JPEGImageEncoder;
    
    public class WaterMark {
         /**
          * 给图片添加水印
          * 
          * @param filePath
          *             需要添加水印的图片的路径
          * @param markContent
          *             水印的文字
          * @param markContentColor
          *             水印文字的颜色
          * @param qualNum
          *             图片质量
          * @return
          */
         public void createMark(String filePath, String markContent,
                 Color markContentColor, float qualNum) {
            
             ImageIcon imgIcon = new ImageIcon(filePath);
             Image theImg = imgIcon.getImage();
             int width = theImg.getWidth(null);
             int height = theImg.getHeight(null);
             BufferedImage bimage = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
            
             Graphics2D g = bimage.createGraphics();
             g.setColor(markContentColor);
             g.setBackground(Color.white);
             g.drawImage(theImg, 0, 0, null);
             g.drawString(markContent, width / 3, height / 2); // 添加水印的文字和设置水印文字出现的内容
             g.dispose();
            
             try {
                 FileOutputStream out = new FileOutputStream(filePath);
                 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                 JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);
                 param.setQuality(qualNum, true);
                 encoder.encode(bimage, param);
                 out.close();
                
             } catch (Exception e) {
                 return ;
             }
         }
        
         public static void main(String[] args) {
             WaterMark wm = new WaterMark();
            
             wm.createMark("d://map.jpg","http://www.90che.com",Color.WHITE,70f);
         }
    }

    2007-09-11

  • 相关阅读:
    GCC-windows的预编译版本——nuwen MinGW
    stm32 flash和sram
    NAND Flash和NOR Flash的比较
    emwin如何在windows10下vs2015或2017进行仿真。
    IIC简介(转载)
    ubuntu版本查看
    下载速度更加快的 SourceForge 镜像
    使用virtualbox安装的Ubuntu,窗口分辨率过小,使用增强工具完成和vmtools一样的功能。
    C#中的结构体与类的区别
    理解C#值类型和引用类型
  • 原文地址:https://www.cnblogs.com/personnel/p/4582904.html
Copyright © 2011-2022 走看看