/**
* 添加水印的图片地址, 水印图片地址, 输出地址, 水印旋转度数
* @param iconPath 添加水印的图片地址
* @param srcImagePath 水印图片地址
* @param targerPath 输出地址
* @param degree 水印旋转度数
* @return
*/
public static boolean markImageByIcon(String iconPath, String srcImagePath,
String targerPath, Integer degree) {
OutputStream os = null;
try {
Image srcImage = ImageIO.read(new File(srcImagePath));
BufferedImage bufferImg = new BufferedImage(
srcImage.getWidth(null), srcImage.getHeight(null),
BufferedImage.TYPE_INT_RGB);
Graphics2D g = bufferImg.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(srcImage.getScaledInstance(srcImage.getWidth(null),
srcImage.getHeight(null), BufferedImage.TYPE_INT_RGB), 0,
0, null);
if (null != degree) {
g.rotate(Math.toDegrees(degree),
(double) bufferImg.getWidth() / 2,
(double) bufferImg.getHeight() / 2);
}
ImageIcon imageIcon = new ImageIcon(iconPath);
Image img = imageIcon.getImage();
float alpha = 0.5f;
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));
g.drawImage(img, 150, 300, null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
g.dispose();
os = new FileOutputStream(targerPath);
ImageIO.write(bufferImg, "JPG", os);
} catch (IOException e) {
System.out.println("添加水印时出现异常");
} finally{
if(null != os){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return true;
}
java图片添加水印
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 公司新闻视频直播需要添加实时文字和gif水印,在网上看了下大部分都是基于GPUImage来处理的,发现大部分添加水...
- 这个例子是给图片批量添加图片水印, 文字水印道理相同,改一下就好了:方法里传的参数是图片路径,传逗号字符串就好...
- 最近要实现一个手写签名功能,要求是,在一定区域绘制文字签名,签名完成后,添加新的水印,并且将图片仅保留签字区域剪切...