📄 imageoperate.java水印.txt
字号:
import java.awt.*;
import java.awt.image.*;
import javax.imageio.ImageIO;
import javax.imageio.ImageIO.*;
import javax.imageio.IIOException;
import java.io.*;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import javax.servlet.http.HttpSession;
//引入类
// 图片操作,改变大小加水印
public class ImageOperate {
/**
* 给图片加水印,但不改变大小
* @param strOriginalFileName String(原始文件) 就是水印原始文件
* @param strWaterMarkFileName String(水印文件)
*/
//水印方法实现
//public void waterMark(String strOriginalFileName,String strWaterMarkFileName,HttpSession session){
public void waterMark(String strOriginalFileName,String strWaterMarkFileName){
try{
//源文件
//String root=session.getServletContext().getRealPath("/");
//File fileOriginal = new File(root+strOriginalFileName);
File fileOriginal = new File(strOriginalFileName);
Image imageOriginal = ImageIO.read(fileOriginal);
int widthOriginal = imageOriginal.getWidth(null);
int heightOriginal = imageOriginal.getHeight(null);
System.out.println("widthOriginal:" + widthOriginal + "theightOriginal:" + heightOriginal);
BufferedImage bufImage = new BufferedImage(widthOriginal,heightOriginal,BufferedImage.TYPE_INT_RGB);
Graphics g = bufImage.createGraphics();
g.drawImage(imageOriginal,0,0,widthOriginal,heightOriginal,null);
//水印文件
//File fileWaterMark = new File(root+strWaterMarkFileName);
File fileWaterMark = new File(strWaterMarkFileName);
Image imageWaterMark = ImageIO.read(fileWaterMark);
int widthWaterMark = imageWaterMark.getWidth(null);
int heightWaterMark = imageWaterMark.getHeight(null);
System.out.println("widthWaterMark:" + widthWaterMark + "theightWaterMark:" + heightWaterMark);
//水印文件在源文件的右下角
g.drawImage(imageWaterMark,widthOriginal - widthWaterMark,heightOriginal - heightWaterMark,widthWaterMark,heightWaterMark,null);
g.dispose();
//FileOutputStream fos = new FileOutputStream( root+strOriginalFileName);
FileOutputStream fos = new FileOutputStream(strOriginalFileName);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);
encoder.encode(bufImage);
fos.flush();
fos.close();
fos = null;
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args){
new ImageOperate().waterMark("c:/java/2.jpg","c:/java/2.gif");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -