📄 文字水印watermark.java
字号:
package kitchen.tool;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
//import javax.imageio.ImageIO;
import javax.swing.*;
import com.sun.image.codec.jpeg.*;
import java.text.AttributedString;
import java.awt.font.TextAttribute;
import java.text.AttributedCharacterIterator;
public class WaterMark{
/** *//**
* 给图片添加水印 只加在大图上添加
* @param filePath 需要添加水印的图片的路径
* @param markContent 水印的文字
* @param markContentColor 水印文字的颜色
* @param qualNum 图片质量 8f
* @param fontType 字体 "黑体"
* @param fontsize 字体大小 23
* @return
*/
public WaterMark(){}
public boolean createMark(String filePath,String markContent,Color MarContentColor,String fontType,int fontsize,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(MarContentColor);//在这可设置颜色Color.MAGENTA
g.setBackground(Color.white);
g.drawImage(theImg, 0, 0, null );
AttributedString ats = new AttributedString(markContent);
Font f = new Font(fontType,Font.BOLD, fontsize);//设置字体类型大小""
ats.addAttribute(TextAttribute.FONT, f, 0,markContent.length() );
AttributedCharacterIterator iter = ats.getIterator();
g.drawString(iter,width/5,height-10); //添加水印的文字和设置水印文字出现的内容
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 false; }
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -