直接上代码
/**
* 在图片上生成图片水印
* @param Path 原服务器图片路径 底图背景图片
* @param Path_syp 生成的带图片水印的图片路径 (最终生成的图片保存路径)
* @param Path_sypf 水印图片路径 需要添加的水印图片
* @param fileName 生成后图片名称
* @param left_n
* @param top_n
* @param logo_w
* @param logo_h
*/
public static String AddShuiYinPic(String Path, String Path_syp, String Path_sypf, String fileName,int left_n, int top_n, int logo_w, int logo_h)
{
String str= "";
Image image = null;
Image copyImage = null;
try {
//image = ImageIO.read(new File(Path)); //本地图片路径使用
image = ImageIO.read(new URL(Path)); //服务器图片url
copyImage = ImageIO.read(new URL(Path_sypf)); //水印图片url
} catch (IOException e) {
e.printStackTrace();
}
BufferedImage buffImg = new BufferedImage(image.getWidth(null), image.getHeight(null),
BufferedImage.TYPE_INT_RGB); //底图
// 1、得到画笔对象
Graphics2D g = buffImg.createGraphics();
// 2、设置对线段的锯齿状边缘处理
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(image.getScaledInstance(image.getWidth(null), image.getHeight(null), Image.SCALE_SMOOTH), 0,
0, null);
// 3、水印图片的位置
g.drawRect(left_n, top_n, logo_w, logo_h); //相片四周刷一层黑色边框,这里没有,需要调尺寸 画矩形 注意区分:fillRect:填充矩形
g.drawImage(copyImage,left_n, top_n, logo_w, logo_h,null); //添加水印
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
// 4、释放资源
g.dispose();
// 8、生成图片并保存图片到本地
OutputStream os = null;
try {
os = new FileOutputStream("D:/testFile/"+fileName);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
ImageIO.write(buffImg, "png", os);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if (null != os)
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
// 封装的将图片上传到云存储的方法
// ByteArrayOutputStream bs = new ByteArrayOutputStream();
// ImageOutputStream imOut = null;
// try {
// imOut = ImageIO.createImageOutputStream(bs);
// } catch (IOException e) {
// e.printStackTrace();
// }
// try {
// ImageIO.write(buffImg, "png", imOut);
// } catch (IOException e) {
// e.printStackTrace();
// }
// InputStream is = new ByteArrayInputStream(bs.toByteArray());
//
// str = Openstorage.uploadFile(is,"tcapi",Path_syp,fileName);
// System.out.println("生成的海报:"+str);
return str;
}
}
可用