首页>代码>struts2开发Java web图片添加水印实例,支持文字图片自定义>/watermark-master/src/com/watermark/MoreImageMarkService.java
package com.watermark; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import javax.imageio.ImageIO; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; /* * 实现添加多个图片水印 */ public class MoreImageMarkService implements MarkService{ @Override public String watermark(File image, String imageFileName, String uploadPath, String realUploadPath) { String logoFileName = "logo_"+imageFileName; //定义目标文件输出的名称 OutputStream os = null; try { //1 创建图片缓存对象 Image image2 = ImageIO.read(image); int width = image2.getWidth(null); int height = image2.getHeight(null); BufferedImage bufferedImage = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); //2 创建Java绘图工具对象 Graphics2D g = bufferedImage.createGraphics(); //3 使用绘图工具对象将原图绘制到缓存图片对象 g.drawImage(image2, 0, 0, width, height, null); //4 使用绘图工具对象将水印(文字/图片)绘制到缓存图片 String logoPath = realUploadPath + "/" + LOGO; File logo = new File(logoPath); Image logoImage = ImageIO.read(logo); int width1 = logoImage.getWidth(null); int height1= logoImage.getHeight(null); //透明度的设置 g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA)); //旋转图片(30°) g.rotate(Math.toRadians(30),bufferedImage.getWidth()/2,bufferedImage.getHeight()/2); int x= -width/2; int y= -height/2; while(x < width*1.5){ y = -height/2; while(y < height*1.5){ g.drawImage(logoImage,x,y,null); y+=height1+50; } x+= width1 + 50; } g.dispose(); //创建文件输出流,指向最终的目标文件 os = new FileOutputStream(realUploadPath+"/"+logoFileName); //5 创建图像文件编码工具类 JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(os); //6 使用图像编码工具类,输出缓存图像到目标文件 en.encode(bufferedImage); } catch (Exception e) { e.printStackTrace(); }finally{ if(os!=null){ try { os.close(); } catch (Exception e2) { e2.printStackTrace(); } } } return uploadPath+"/"+logoFileName; } }

jp6863655 LV13
2020年8月24日
dasdada LV1
2020年6月24日
嘻嘻哈12333 LV5
2020年4月27日
CLATZJ LV19
2020年3月6日
pllpll LV9
2019年11月23日
wucailang LV11
2019年11月1日
zhw731727335 LV1
2019年7月8日
ziyu199803 LV9
2019年4月28日
fenghuang8 LV22
2019年3月31日
gj_hachi LV1
2019年1月14日