需要注意两张图片同样大小,这里只负责叠加,相信大家可能遇到的问题就是使用 ImageIO.read() 方法读取png图像,然后在一张图片上面绘制另一张图片,但是结果会丢失原来图片的透明度。

所以我们做一次重写

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;public class ImageOverlying2 {public static String overlapImage(String backgroundPath, String frontgroudPath,String outPutPath) {try {//设置图片大小
//            BufferedImage background = ImageIO.read(new File(backgroundPath));
//            BufferedImage frontgroud = ImageIO.read(new File(frontgroudPath));BufferedImage background = resizeImagePng(256, 256, ImageIO.read(new File(backgroundPath)));BufferedImage frontgroud = resizeImagePng(256, 256, ImageIO.read(new File(frontgroudPath)));//在背景图片中添加入需要写入的信息,Graphics2D g = background.createGraphics();//设置为透明覆盖g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1.0f));//在背景图片上相框g.drawImage(frontgroud, 0, 0, frontgroud.getWidth(), frontgroud.getHeight(), null);g.dispose();//输出图片ImageIO.write(background, "png", new FileOutputStream(outPutPath));} catch (Exception e) {e.printStackTrace();}return null;}/*** 重定义图片尺寸* @param x* @param y* @param bfi* @return*/public static BufferedImage resizeImagePng(int x, int y, BufferedImage bfi) {BufferedImage bufferedImage = new BufferedImage(x, y, BufferedImage.TYPE_INT_ARGB);bufferedImage.getGraphics().drawImage(bfi.getScaledInstance(x, y, Image.SCALE_SMOOTH), 0, 0, null);return bufferedImage;}public static void main(String[] args) {String tiandi = "D:\\work\\data\\图1.png";String haitu = "D:\\work\\data\\图2.png";String desImage = "D:\\work\\data\\叠加图.png";overlapImage(tiandi, haitu, desImage);}}

java叠加两张png带透明图片相关推荐

  1. 第5章第17节:案例:使两张幻灯片中的图片进行平滑切换 [PowerPoint精美幻灯片实战教程]

    本节演示在幻灯片切换时,如何使这两张幻灯片中的图片进行平滑的切换. 点击切换选项卡,打开切换功能面板. 在切换效果列表中,选择平滑选项. 点击幻灯片编号下方的星星图标,可以预览幻灯片的切换效果. 从图 ...

  2. 使用Photoshop合成两张不完整的图片

    一.准备工作 软件环境:PhotoshopCS6 目标:将两张不完整的图片合并成一张完整的图片. 二.操作步骤 1,新建一张画布,参数:15*12厘米,像素300. 2,对第一张不完整的图片选择魔棒工 ...

  3. java实现两张png图片合并(重叠)成一张图片

    /*** @date: 2023/4/16 15:01* @Description:*/ public class ImgUtils {/**** @Date: 2023/4/16 15:13* @D ...

  4. python多张图叠加为一张_Python PIL实现图片重叠

    入学前学校有个作业,想想可以搞点啥呢 于是就想着可以用PIL模块,把学校的风景和某些元素叠加起来 于是在网上搜寻了一些资料,看到的都是烂七八糟的,以及从其他地方COPY下来的 于是自己就找到了PIL模 ...

  5. Java对比两张Excel表的数据,java对比两个excel或者一张excel和数据库的一张表的数据是否相同,两张excel表格匹配相同的数据库...

    excel自动从数据库匹配相应的数据 vlookup函数:vlookup(lookup_value,table_array,col_index_num,[range_lookup]) 第一个:look ...

  6. opencv 叠加两张图_「干货」教你如何用OpenCV快速寻找图像差异处

    如何使用结构相似性指数(SSIM)将两个图像与Python进行比较. 使用这种方法,我们能够轻松确定两个图像是否相同或由于轻微的图像处理,压缩伪像或有目的的篡改而产生差异. 今天我们将扩展SSIM方法 ...

  7. opencv 叠加两张图_OpenCV基础篇之图片叠加

    OpenCV基础篇之图片叠加 程序及分析 /* * FileName : blend.cpp * Author  : xiahouzuoxin @163.com * Version  : v1.0 * ...

  8. Java创建GIF图,带透明背景

    需求 使用Java将序列图转换为GIF动图,如果序列图本身包含alpha透明通道,生成的GIF图也要保留透明通道. 对于序列图转换为GIF动图的需求,如果数量比较大,对性能要求较高,建议直接使用专业的 ...

  9. java实现两张表的数据同步,java实现mysql数据库从一张表插入数据到另一张表

    包 cn.gtmc.schedule.app; 导入 cn.gtmc.schedule.domain.Employee; import java.sql. * ; 导入 java.util.Array ...

最新文章

  1. php大马免杀技巧 | bypass waf
  2. 比特币到底是不是货币?
  3. 漫谈 - 从技术业务骨干走向管理
  4. 181030每日一句
  5. 本人CSDN资源重传、0积分获取的方法以及重要声明(长期有效)
  6. YOLO系列模型,yolov3-yolov7全方位对比实验参照,包括参数量Params,计算量GFLOPs,复杂度,mAP以及FPS等参照
  7. 《麻省理工学院公开课:人工智能》笔记三
  8. 《硅谷钢铁侠》读书摘录(一)
  9. Item25 Use std::move on rvalue reference, std::forward on universal references
  10. 防治颈椎病,别陷入误区
  11. C# List排序和数字处理(三位加一撇)
  12. java多线程之Executors
  13. go语言工具_Concurrent Map
  14. 热销产品缺货,滞销产品积压?WMS系统如何打造智能仓储
  15. 【数据结构(2)】1.2 数据结构的基本概念和术语
  16. 线性代数精华——从正交向量到正交矩阵
  17. 求最大公约数(最大公因数)
  18. Nginx学习笔记(二):反向代理
  19. 运用计算机思想分析和综合经济问题,【经济学论文】数量经济学学科素养分析(共6246字)...
  20. 简析ROF降噪原理及python实现详解

热门文章

  1. JAVA面试题(转自https://blog.csdn.net/weixin_38399962/article/details/80358168)
  2. Ubuntu与arm开发板之间构建NFS数据通道
  3. iGuard简单突破
  4. 2018数学建模国赛回顾(国一)
  5. ROS-control-gazebo-moveit-grasp(一、场景搭建)
  6. 加入美团2021届北斗计划,用科技定义未来生活
  7. 蜂鸟E203硬件 RV-STAR和Nuclei DDR200T和MCU200T比较
  8. 如何提高程序员的工作效率 这几招就够了
  9. 提升工作效率的软件及网站(不断更新中)
  10. wordpress开启全站https