1.准备

场景:可能会遇到这样的需求,让我们查看一天每个小时的变化情况,并在一张图片中体现出来,那这就需要利用图片的切割和合成技术。

首先,我们需要把每天的每个小时图片,切割成一张图片,再把24个小时拼接成一个完整的图片

原图:

切割图:

切割图片,请看https://blog.csdn.net/qq_16855077/article/details/90378173

代码的这两个地方改为12    1.jpg      13     2.jpg    14   3.jpg,生成的图片如下图

合成图:

2.代码

package com.qihui.qxj.utils;import java.awt.image.BufferedImage;
import java.io.File;import javax.imageio.ImageIO;/*** 图片拼接 把多张宽度一样的图片拼接成一张大图片* * @author Administrator**/
public class CreateBigImage {public static void main(String[] args) {// 获取宽度相同的图片String img1 = "D:/a/1.jpg";String img2 = "D:/a/2.jpg";String img3 = "D:/a/3.jpg";String[] imgs = new String[] { img1, img2, img3 };//Image.mergeImage(imgs, 1, "D:/big.jpg");// //图片拼接merge(imgs, "jpg", "D:/big.jpg");}/*** Java拼接多张图片* * @param pics:图片源文件*            (必须要宽度一样),如: String img1 = "D:/imgs/3.jpg"; String img2 =*            "D:/imgs/3.jpg"; String img3 = "D:/imgs/big.jpg"; String[]*            pics = new String[]{img1,img2,img3};* @param type*            :图片输出类型(jpg,png,jpeg...)* @param dst_pic*            :图片输出绝对路径,如 String dst_pic="D:/imgs/big2.jpg";* @return*/public static boolean merge(String[] pics, String type, String dst_pic) {int len = pics.length; // 图片文件个数if (len < 1) {System.out.println("pics 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(pics[i]);images[i] = ImageIO.read(src[i]);} catch (Exception e) {e.printStackTrace();return false;}int width = images[i].getWidth();int height = images[i].getHeight();ImageArrays[i] = new int[width * height];// 从图片中读取RGBImageArrays[i] = images[i].getRGB(0, 0, width, height, ImageArrays[i], 0, width);}int dst_width = 0;int dst_height = 0;for (int i = 0; i < images.length; i++) {dst_width += images[i].getWidth();dst_height = dst_height > images[i].getHeight() ? dst_height : images[i].getHeight();}System.out.println(dst_width);System.out.println(dst_height);// 生成新图片try {BufferedImage ImageNew = new BufferedImage(dst_width, dst_height, BufferedImage.TYPE_INT_RGB);int width_i = 0;for (int i = 0; i < images.length; i++) {ImageNew.setRGB(width_i, 0, images[i].getWidth(), dst_height, ImageArrays[i], 0, images[i].getWidth());width_i += images[i].getWidth();}File outFile = new File(dst_pic);ImageIO.write(ImageNew, type, outFile);// 写图片} catch (Exception e) {e.printStackTrace();return false;}return true;}}

到这里,图片的合成就完成勒。

如果你热衷技术,喜欢交流,欢迎加入我们!

《ffmpeg入门学习》 五 多个图片合成一张图片相关推荐

  1. 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础

    上篇文章 单片机入门学习四 STM32单片机学习一 跑马灯程序和创建工程 仅介绍了入门程序及其编译运行过程,下面开始对stm32的一些基础知识做一个记录. 1.stm32f103zet6(上篇问题3 ...

  2. html+css基础入门学习教程标记语言——图片替换

    Chapter 14 图片替换 随着更多设计师与开发者开始使用标准(特别是CSS),每天都会有许多新技术被发现,达成相同目标的新方法,更好的方法也不断发展着. 网页教学网 "图片替换&quo ...

  3. 如何用php 图片合成一张图片,php图片合成方法(多张图片合成一张)

    1.多张图片合成一张比如: 图片合成,可以显示在浏览器上面同时保存到文件夹下面 实例如下所示:<?php /** * 图片合并 **/ $pic_list = array( "img2 ...

  4. 《ffmpeg入门学习》 六 java把多个图片合成视频,并添加图片水印

    1.准备 使用ffmepg工具,这里就不过多阐述,详细的可查看,我以前的博客. 准备20张图片,我这里的二十张图片都是加了时间水印的图片(你也可以找不一样的图片,能看出切换的效果就行). 功能:需要把 ...

  5. AVI音视频封装格式学习(五)——h265与PCM合成AVI文件

    不知道是处于版权收费问题还是什么原因,H265现在也并没有非常广泛的被普及.将h265数据合成AVI的资料现在在网上也基本上没有.使用格式化工厂工具将h265数据封装成AVI格式,发现它在封装的时候其 ...

  6. Metal入门学习:绘制纹理图片

    一.编程指南PDF下载链接(中英文档) 1.Metal编程指南PDF链接 https://github.com/dennie-lee/ios_tech_record/raw/main/Metal学习P ...

  7. 基于ffmpeg入门学习相关的资料

    上份工作主要是做移动端流媒体,写了几个版本的播放器,现在正好有点时间,打算将部分不设计公司保密的代码开源了,另外重要的一点是把ffmpeg这一块入门的资料整理整理.先列的表单 1.iOS下几个播放器资 ...

  8. 《ffmpeg入门学习》 二 摄像头对接

    1.准备 nginx-1.7.11.3-Gryphon下载 链接:https://pan.baidu.com/s/1EANAajsoGQcvjfphAuOoRQ  提取码:lhwb nginx.con ...

  9. qml入门学习(五):alias

    例: 运行结果:

  10. python入门学习(五 字符串string和变量variable)

    1.字符串 一串字符显示或者打印出来文字信息 双引号,单引号,三引号 双引号:解析功能 单引号:无 三引号:保存文本格式 Format方法 age = 3 name = "jason&quo ...

最新文章

  1. URI、URL以及URN的区别
  2. Caffe源码中caffe.proto文件分析
  3. 指针数组(主要用于二维的数组)
  4. Minimum Array
  5. java中实现同步的两种方式:syschronized和lock的区别和联系
  6. SAP CRM呼叫中心点了interact按钮后的处理逻辑
  7. 服务器apache远程命令,Linux实例:用socket通讯远程执行命令
  8. P5706 【深基2.例8】再分肥宅水--2022.02.13
  9. 全网最细Docker安装Minio,填满最新版大坑(强烈推荐收藏)
  10. bootstrap表单拖拽生成器插件_web前端常用插件、工具类库汇总,新手必收藏!!!...
  11. 48周岁交的社保,加医疗合计每月1200,想问问退休能开多少?
  12. WEB环境下打印报表的CRYSTAL的解决方案
  13. 20145325张梓靖 《信息安全系统设计基础》第10周学习总结
  14. 深入理解dex文件结构
  15. X线、CT、B超、核磁共振区别
  16. vs打包生成的文件有:setup.msi,setup.exe 二者区别
  17. 分布电容和杂散电容_寄生电容 分布电容
  18. 中国第一批程序员的“青春饭”已经恰完了,35+的程序员该何去何从?
  19. android 锁机代码‘’,android手机锁机txt代码
  20. 同学早已年薪百万,你却还在朋友圈集赞

热门文章

  1. 透过现象看本质(一)
  2. 数据采集笔记(八爪鱼)-task1
  3. IEEE模板如何在abstract和keywords之间加一个段落Note to Practitioners
  4. 一直以来伴随我的一些学习习惯(part1)
  5. 【史上最全】设计师必备的83个设计资源网站
  6. UCSC 基因组浏览器配置详解
  7. 计算机网络之数据传输方式:电路交换、报文交换和分组交换
  8. html-菜鸟--书架仿饿了么首页—Html学习(1)
  9. PPT打印处理 深色背景/白色字体转换 + 多分页占满
  10. 固态硬盘用软件测试掉速严重,固态硬盘为什么会“掉速”?