本文实例为大家分享了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代码实现相关推荐

  1. java中为按钮添加图片_如何在Java中为字符串添加双引号?

    java中为按钮添加图片 In Java, everything written in double-quotes is considered a string and the text writte ...

  2. 怎么在java中引用图片_如何使用Java(读/写)读取复制和粘贴图片?

    在Java语言编程中,如何使用Java(读/写)读取复制和粘贴图片? 注意:需要访问网址:http://book2s.com/java/jar/o/opencv/download-opencv-3.2 ...

  3. java加载机制_详解Java类加载机制

    一:ClassLoader 从JVM结构图中可以看到,类加载器的作用是将Java类文件加载到Java虚拟机. HotSpot JVM结构,图片来自Java Garbage Collection Bas ...

  4. java象棋实验报告_中国象棋java程序设计实验报告

    中国象棋java程序设计实验报告 东北大学秦皇岛分校信息与计算科学系Java 程序设计实验报告专业名称 信 息 与 计 算 科 学班级学号 7080206学生姓名 彭 军指导教师 王 薇完成时间 20 ...

  5. java象棋实验报告_中国象棋java程序设计实验报告.doc

    中国象棋java程序设计实验报告.doc 东北大学秦皇岛分校 信息与计算科学系 Java 程序设计实验报告 专业名称 信息与计算科学 班级学号 7080206 学生姓名 彭 军 指导教师 王薇 完成时 ...

  6. java获取机器号_(转)JAVA获得机器码的实现

    http://yangshangchuan.iteye.com/blog/2012401 首先,定义了一个统一的接口,以支持不同操作系统不同实现的透明切换: Java代码  收藏代码 /** *生成机 ...

  7. 新手学java 学哪方面_初学者学Java应从哪些方面学习?

    原标题:初学者学Java应从哪些方面学习? Java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.那么,初学者学Java应从哪些方面学 ...

  8. java.sql在哪_我的Java访问MS SQL的程序错在哪了?谢谢!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我用的开发工具是Jbuilder2006, MS SQL SERVER 2000. 源程序是: package data; import java.*; ...

  9. java hdfs创建文件_使用HDFS java api 创建文件出错。

    //创建文件核心代码 public static void createNewHDFSFile(String toCreateFilePath, String content) throws IOEx ...

  10. java hdfs 新建目录_如何用java在hdfs中创建一个新目录?

    public static void main(String[] args) throws IOException, URISyntaxException { ????????????配置config ...

最新文章

  1. kali-linux 完美解决sublime输入 中文
  2. 白话Elasticsearch30-IK中文分词之热更新IK词库
  3. 极性大小判断技巧_“赫洛克效应”:夸奖能激发孩子的潜能,但父母要掌握技巧与原则...
  4. 前端自动化之nvm安装
  5. 【Spring】No suitable HttpMessageConverter repsonse type
  6. 如何造一个移动端的联动选择器(三)
  7. 广东电信 5.31 因「运维误操作」导致断网:流量突降 1.3 TB
  8. 格式化一个文件的大小(size),或者说是格式化一个app的大小(size)
  9. ansys2017安装教程_ANSYS Student
  10. Apple Pay接入详细教程
  11. SYNOPSYS™光学设计软件---设计自由曲面反射系统
  12. 中兴服务器isac配置,中兴AC 配置手册V1.0.docx
  13. MySQL: 为什么使用 innobackupex 备份恢复搭建主从时,必须人为设置 gtid_purged 变量
  14. 智商太低,居然算不出病狗神题了
  15. 第3章 随机点名器案例
  16. Kubernetes基础:重启pod的方法
  17. 蓝汛之TWS之间的通信:【篇】
  18. MATLAB仿真 gough-stewart平台六自由度机构运动控制
  19. 思迅商云8数据库修复/商超软件数据库恢复思迅附加数据库mdf823错误824错误断电
  20. 保证金,杠杆和风险限额委托种类

热门文章

  1. sql求平均日活_SQL 统计日活、月活指标
  2. markdown语法转换成html,使用Showdown来把markdown语法转化成html
  3. 多线程扑克牌发牌小白实现 -- 记录下自己代码点滴
  4. 转: 特征值和特征向量--1
  5. 三菱FX系列PLC面板布置和PLC系统构成
  6. 挖掘用户反馈中的宝藏——NLP文本标签化解密
  7. idea项目名称重命名
  8. 2.0 正式开始整理一下工训赛(全国大学生工程实践和创新能力大赛),智能垃圾桶的制作流程和参赛历程
  9. 交换机的工作模式:IVL和SVL
  10. C# datagridview CheckBox勾选问题