java如何叠加图片_图片叠加效果Java代码实现
本文实例为大家分享了Java实现图片叠加效果展示的具体代码,供大家参考,具体内容如下
import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class NewImageUtils {
/**
*
* @Title: 构造图片
* @Description: 生成水印并返回java.awt.image.BufferedImage
* @param file
* 源文件(图片)
* @param waterFile
* 水印文件(图片)
* @param x
* 距离右下角的X偏移量
* @param y
* 距离右下角的Y偏移量
* @param alpha
* 透明度, 选择值从0.0~1.0: 完全透明~完全不透明
* @return BufferedImage
* @throws IOException
*/
public static BufferedImage watermark(File file, File waterFile, int x, int y, float alpha) throws IOException {
// 获取底图
BufferedImage buffImg = ImageIO.read(file);
// 获取层图
BufferedImage waterImg = ImageIO.read(waterFile);
// 创建Graphics2D对象,用在底图对象上绘图
Graphics2D g2d = buffImg.createGraphics();
int waterImgWidth = waterImg.getWidth();// 获取层图的宽度
int waterImgHeight = waterImg.getHeight();// 获取层图的高度
// 在图形和图像中实现混合和透明效果
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));
// 绘制
g2d.drawImage(waterImg, x, y, waterImgWidth, waterImgHeight, null);
g2d.dispose();// 释放图形上下文使用的系统资源
return buffImg;
}
/**
* 输出水印图片
*
* @param buffImg
* 图像加水印之后的BufferedImage对象
* @param savePath
* 图像加水印之后的保存路径
*/
private void generateWaterFile(BufferedImage buffImg, String savePath) {
int temp = savePath.lastIndexOf(".") + 1;
try {
ImageIO.write(buffImg, savePath.substring(temp), new File(savePath));
} catch (IOException e1) {
e1.printStackTrace();
}
}
/**
*
* @param args
* @throws IOException
* IO异常直接抛出了
* @author bls
*/
public static void main(String[] args) throws IOException {
String sourceFilePath = "D://img//di.png";
String waterFilePath = "D://img//ceng.png";
String saveFilePath = "D://img//new.png";
NewImageUtils newImageUtils = new NewImageUtils();
// 构建叠加层
BufferedImage buffImg = NewImageUtils.watermark(new File(sourceFilePath), new File(waterFilePath), 0, 0, 1.0f);
// 输出水印图片
newImageUtils.generateWaterFile(buffImg, saveFilePath);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
您可能感兴趣的文章:
Java从数据库中读取Blob对象图片并显示的方法
Java实现图片与Base64编码互转
详解Java中使用ImageIO类对图片进行压缩的方法
Java实现图片对比功能
时间: 2018-02-08
java如何叠加图片_图片叠加效果Java代码实现相关推荐
- java中为按钮添加图片_如何在Java中为字符串添加双引号?
java中为按钮添加图片 In Java, everything written in double-quotes is considered a string and the text writte ...
- 怎么在java中引用图片_如何使用Java(读/写)读取复制和粘贴图片?
在Java语言编程中,如何使用Java(读/写)读取复制和粘贴图片? 注意:需要访问网址:http://book2s.com/java/jar/o/opencv/download-opencv-3.2 ...
- java加载机制_详解Java类加载机制
一:ClassLoader 从JVM结构图中可以看到,类加载器的作用是将Java类文件加载到Java虚拟机. HotSpot JVM结构,图片来自Java Garbage Collection Bas ...
- java象棋实验报告_中国象棋java程序设计实验报告
中国象棋java程序设计实验报告 东北大学秦皇岛分校信息与计算科学系Java 程序设计实验报告专业名称 信 息 与 计 算 科 学班级学号 7080206学生姓名 彭 军指导教师 王 薇完成时间 20 ...
- java象棋实验报告_中国象棋java程序设计实验报告.doc
中国象棋java程序设计实验报告.doc 东北大学秦皇岛分校 信息与计算科学系 Java 程序设计实验报告 专业名称 信息与计算科学 班级学号 7080206 学生姓名 彭 军 指导教师 王薇 完成时 ...
- java获取机器号_(转)JAVA获得机器码的实现
http://yangshangchuan.iteye.com/blog/2012401 首先,定义了一个统一的接口,以支持不同操作系统不同实现的透明切换: Java代码 收藏代码 /** *生成机 ...
- 新手学java 学哪方面_初学者学Java应从哪些方面学习?
原标题:初学者学Java应从哪些方面学习? Java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.那么,初学者学Java应从哪些方面学 ...
- java.sql在哪_我的Java访问MS SQL的程序错在哪了?谢谢!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我用的开发工具是Jbuilder2006, MS SQL SERVER 2000. 源程序是: package data; import java.*; ...
- java hdfs创建文件_使用HDFS java api 创建文件出错。
//创建文件核心代码 public static void createNewHDFSFile(String toCreateFilePath, String content) throws IOEx ...
- java hdfs 新建目录_如何用java在hdfs中创建一个新目录?
public static void main(String[] args) throws IOException, URISyntaxException { ????????????配置config ...
最新文章
- kali-linux 完美解决sublime输入 中文
- 白话Elasticsearch30-IK中文分词之热更新IK词库
- 极性大小判断技巧_“赫洛克效应”:夸奖能激发孩子的潜能,但父母要掌握技巧与原则...
- 前端自动化之nvm安装
- 【Spring】No suitable HttpMessageConverter repsonse type
- 如何造一个移动端的联动选择器(三)
- 广东电信 5.31 因「运维误操作」导致断网:流量突降 1.3 TB
- 格式化一个文件的大小(size),或者说是格式化一个app的大小(size)
- ansys2017安装教程_ANSYS Student
- Apple Pay接入详细教程
- SYNOPSYS™光学设计软件---设计自由曲面反射系统
- 中兴服务器isac配置,中兴AC 配置手册V1.0.docx
- MySQL: 为什么使用 innobackupex 备份恢复搭建主从时,必须人为设置 gtid_purged 变量
- 智商太低,居然算不出病狗神题了
- 第3章	随机点名器案例
- Kubernetes基础:重启pod的方法
- 蓝汛之TWS之间的通信:【篇】
- MATLAB仿真 gough-stewart平台六自由度机构运动控制
- 思迅商云8数据库修复/商超软件数据库恢复思迅附加数据库mdf823错误824错误断电
- 保证金,杠杆和风险限额委托种类