java 上传图片 打水印

时间:2023-03-08 23:30:18
java 上传图片 打水印

其实就是在现有的图片上,画东西,也可以直接 贴图片

        //添加水印
@Override
public File pressFile(File file,String press_path) throws IOException {
// TODO Auto-generated method stub
File newFile=null;
String pressText="TOGO";
String path=file.getPath();
String oldFileName=file.getName();
//目标文件
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);
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null); //水印文件
File pressFile=new File(press_path+"/images/LOGO.png");
Image press_img=ImageIO.read(pressFile);
int press_wideth=press_img.getWidth(null);
int press_height=press_img.getHeight(null);
//添加图片水印
g.drawImage(press_img,wideth-press_wideth,height-press_height,press_wideth,press_height,null);
g.drawImage(press_img,(wideth-press_wideth)/2,(height-press_height)/2,press_wideth,press_height,null);
g.drawImage(press_img,10,10,press_wideth,press_height,null);
//添加文字水印
g.setColor(Color.RED);
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, 10, 10);
//添加完成
g.dispose();
//输出保存文件
FileOutputStream out = new FileOutputStream(path);
file.delete();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
// JPEGEncodeParam param=encoder.getDefaultJPEGEncodeParam(image); //图片质量
// param.setQuality(1, true);
encoder.encode(image);
out.close(); return newFile;
}