java代码合成多张图片成一张
将多张图片合成一张,不多说直接上代码:注意当图片宽度不同时会报数组下标异常。
/*** *@类功能说明:java拼接多张图片,生成的格式是jpg、bmp、gif等,* 如果其他格式则报错或者photoshop或者画图工具打不开*@修改人员名: yang*@修改日期:2016-3-10 上午10:35:04*@创建时间:2016-3-10 上午10:35:04* -------------------------------------------------------------------------------------------* 修改次数 修改人员 修改内容 修改原因 * * @备注:只能拼接同类型的图片(不能连续拼接)、宽度需要一致(高度可以不限制)* @版本: V1.0*/
public class JoinMoreImage {/** * Java拼接多张图片 * * @param imgs 图片地址集合* @param type 图片类型* @param dst_pic //输出的文件:F:/test2.jpg* @return */ public static boolean merge(String[] imgs, String type, String dst_pic) { //获取需要拼接的图片长度int len = imgs.length; //判断长度是否大于0if (len < 1) { return false; } File[] src = new File[len]; BufferedImage[] images = new BufferedImage[len]; int[][] ImageArrays = new int[len][]; for (int i = 0; i < len; i++) { try { src[i] = new File(imgs[i]); images[i] = ImageIO.read(src[i]); } catch (Exception e) { e.printStackTrace(); return false; } int width = images[i].getWidth(); int height = images[i].getHeight(); // 从图片中读取RGB 像素ImageArrays[i] = new int[width * height];ImageArrays[i] = images[i].getRGB(0, 0, width, height, ImageArrays[i], 0, width); } int dst_height = 0; int dst_width = images[0].getWidth(); //合成图片像素for (int i = 0; i < images.length; i++) { dst_width = dst_width > images[i].getWidth() ? dst_width : images[i].getWidth(); dst_height += images[i].getHeight(); } //合成后的图片System.out.println("宽度:"+dst_width); System.out.println("高度:"+dst_height); if (dst_height < 1) { System.out.println("dst_height < 1"); return false; } // 生成新图片 try { dst_width = images[0].getWidth(); BufferedImage ImageNew = new BufferedImage(dst_width, dst_height, BufferedImage.TYPE_INT_RGB); int height_i = 0; for (int i = 0; i < images.length; i++) { ImageNew.setRGB(0, height_i, dst_width, images[i].getHeight(), ImageArrays[i], 0, dst_width); height_i += images[i].getHeight(); } File outFile = new File(dst_pic); ImageIO.write(ImageNew, type, outFile);// 写图片 ,输出到硬盘 } catch (Exception e) { e.printStackTrace(); return false; } return true; } //测试类:注意图片的长宽高不一致可能会报错public static void main(String[] args) {//输入图片地址String[] imgs={"F:/tomcat7/webapps/PicLive/image/fc24fa10-31.jpg","F:/tomcat7/webapps/PicLive/image/08f48370-.jpg"};//调用方法生成图片JoinMoreImage.merge(imgs,"jpg","F:/test.jpg");}}
java代码合成多张图片成一张相关推荐
- Java代码判断数据库中某张表是否存在
最近在开发一个同步数据的统计任务的时候遇到一个问题:要在Java代码中判断数据库中某张表是否存在,查资料后,总结了以下两种方法: 1.使用JdbcTemplate bean public boolea ...
- java 图片合成_java 将两张相片合成一张,开发实用类
实现将两压缩好的图片 写在一张画布上 思路,先成一个足够大的画布 放入两张相片 以下代码需要改进 import java.awt.AlphaComposite; import java.awt.Gra ...
- java代码实现多张图片/单张图片文件上传
在项目中有这样的需求,有多个地方需要用到上传图片的功能,可以上传一张或多张照片.这时候自然想到了封装,来达到复用的目的.前后端分离开发,可以在上传文件后返回图片路径给前端,然后在最后整个需求完成后由前 ...
- iservice封装有哪些方法_请问这段Java代码能不能封装成一个方法
问题描述 这段代码在我的项目中经常会被使用到,想要把它封装成一个方法以达到减少代码量的目的,但由于本人是个菜鸟没能做到,希望有心的大神提供下思路.在此先行拜谢了. 目的:想将hardwareServi ...
- chatgpt赋能python:Python将两张图片拼接成一张图:让您的图片处理更高效!
Python将两张图片拼接成一张图:让您的图片处理更高效! 作为一个有着10年Python编程经验的工程师,我发现Python成为了许多项目的主要语言,其中涵盖了很多关于图像处理的应用程序.在本文中, ...
- 实用常识 | 如何将多张图片合成一张gif图片(使用Win10自带工具or利用Photoshop实现)
今天遇到了一个需求,需要将多张图片合成一张gif图片,利用搜索引擎搜来搜去,尝试了很多在线的网页端工具,不过要么是有水印,要么是需付费,而且合成效果也不是很好,找来找去,Win10自带的视频合成工具也 ...
- PIL实现两张图片合成一张,和图片加文字
PIL实现两张图片合成一张,和图片加文字 文章目录: 一.PIL实现两张图片合成一张 1.方法一: 2.方法二 二.图片添加文字 首先说明一下: (小姐姐是谁,是my sweetheart ,请勿使用 ...
- 什么相片可以两张弄成一张_怎么将两张图片合成一张?
有时候我们需要将两张图片放在一起相比较,但是两张图片相互切换对比起来比较困难,有没有什么办法将两张图片合成一张?方法是肯定有的,而且还是多种多样的,本文就给大家介绍一种对普通用户来说最简单方便快捷的方 ...
- 什么相片可以两张弄成一张_ps怎么把两张图片合成一张
ps怎么把两张图片合成一张 图片应用在我们的生活中十分广泛,Photoshop似乎已经离不开我们的生活.点点滴滴回忆刻印成一张张图片.不过有不少网友却不知道ps怎么把两张图片合成一张,下文将一一为大家 ...
- 如何将两张图片上下合成一张?
如何将两张图片上下合成一张?不知道大家有没有遇到过这样的情况,工作中需要将两张图片上传到某个网站上,但是网站只能允许上传一张图片,相信很多小伙伴都有过这样的经历吧.这个时候大家会怎么办呢?有什么方法可 ...
最新文章
- 网页分析利器:IEDevToolBar
- saltstack之(二)软件包下载安装
- 【ssh从零单排】关于HTTP Status 404的debug问题
- Python 序列类型支持拆包操作
- python 如何引用同一个目录下的另一个py文件
- iToken----开发前准备
- 获取天气html,使用htmlparser获取sohu的天气预报
- 贪婪洞窟2服务器维护,《贪婪洞窟2》11月30日更新维护多久 贪婪洞窟2更新维护公告...
- 华语乐坛趋势报告(2022)
- linux 挂载硬件设备
- 大一python考试知识点_Python基础知识点(精心整理)
- python 爬取全国统计用区划代码和城乡划分代码
- js 获取浏览器高度、浏览器宽度
- 倾斜摄影测量知识基础
- C#窗体应用程序之设置窗体名称和程序图标
- 在VS2005和2008的对话框里,添加了一个MSCOMM通信控件,怎么mscomm.h和mscomm.cpp没有自动出现?
- ios系统设置z-index不生效问题
- 牛客网数字化招聘解决方案,支持10万人同时在线笔试
- Microsoft自家的虚拟光驱 Virtual CD-ROM Control Panel for Wind
- 牛盾网络验证源码全开源【易语言】