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;

	}


 

 

你可能感兴趣的:(java)