/*** 合并任数量的图片成一张图片** @param isHorizontal true代表水平合并,fasle代表垂直合并* @param image        待合并的图片数组* @return*/public static BufferedImage mergeImage(boolean isHorizontal, List<BufferedImage> image) throws IOException {// 生成新图片BufferedImage destImage;// 计算新图片的长和高int allw = 0, allh = 0, allwMax = 0, allhMax = 0;// 获取总长、总宽、最长、最宽for (int i = 0; i < image.size(); i++) {BufferedImage img = image.get(i);allw += img.getWidth();if (image.size() != i + 1) {allh += img.getHeight() + 5;} else {allh += img.getHeight();}if (img.getWidth() > allwMax) {allwMax = img.getWidth();}if (img.getHeight() > allhMax) {allhMax = img.getHeight();}}// 创建新图片if (isHorizontal) {destImage = new BufferedImage(allw, allhMax, BufferedImage.TYPE_INT_RGB);} else {destImage = new BufferedImage(allwMax, allh, BufferedImage.TYPE_INT_RGB);}Graphics2D g2 = (Graphics2D) destImage.getGraphics();g2.setBackground(Color.LIGHT_GRAY);g2.clearRect(0, 0, allw, allh);g2.setPaint(Color.RED);// 合并所有子图片到新图片int wx = 0, wy = 0;for (int i = 0; i < image.size(); i++) {BufferedImage img = image.get(i);int w1 = img.getWidth();int h1 = img.getHeight();// 从图片中读取RGBint[] ImageArrayOne = new int[w1 * h1];ImageArrayOne = img.getRGB(0, 0, w1, h1, ImageArrayOne, 0, w1); // 逐行扫描图像中各个像素的RGB到数组中if (isHorizontal) { // 水平方向合并destImage.setRGB(wx, 0, w1, h1, ImageArrayOne, 0, w1); // 设置上半部分或左半部分的RGB} else { // 垂直方向合并destImage.setRGB(0, wy, w1, h1, ImageArrayOne, 0, w1); // 设置上半部分或左半部分的RGB}wx += w1;wy += h1 + 5;}g2.dispose();return destImage;}

Java 合并任数量的图片成一张图片相关推荐

  1. 练习 | 01 | 把多张图片合并成一张图片

    1 实现方式 1.1 第一种方案 import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.F ...

  2. OpenCV将两图片进行混合,达到两张图片合并成一张图片的效果

    1.概述 案例:将两张图片混合成一张图片,并且原图的元素要保留到同一张图片中. 2.示例图片 2.1.混合后的图片 2.2.原始的两张图片 3.示例代码 //将两张图片进行混合 #include &l ...

  3. Java 批量导出PPT为图片,并合并生成PDF

    Java 批量导出PPT为图片,并合并生成PDF 最近有小伙伴需要把PPT打印,但苦于PPT太多,浪费纸张,所以特别写了这个合并多张PPT到一张A4纸上并生成PDF方便打印的程序: 前期准备 把PPT ...

  4. Windows10 把两张图片合并成一张图片

    Windows10把两张图片合并成一张图片 文章目录 Windows10把两张图片合并成一张图片 1. 背景 2. "画图"实现多图拼接 1. 背景 相比截图功能,在 Google ...

  5. 在电脑上图片过长,但是要截成一张图片,解决方案

    在电脑上图片过长,但是要截成一张图片,应该怎么解决 - 正如这张图片,我们很难截成长的,但是我们把图片横着不久行了嘛 transform:rotate(90deg); height:205% marg ...

  6. 如何使用GridView实现不同数量显示图片不同的大小

    有时我们需要在空间看到说说发布一张图片变得很大,多发几张图片就变小了,为了实现这个效果我们就需要Gridview 和它的Adapter 下面是GridView的代码 activity_grid_tes ...

  7. 怎样能把两张照片拼成一张图片,5种工具分享

    怎样能把两张照片拼成一张图片?图片拼合的应用场景是很多的.比如将几张相册中的照片拼成一张合影.将多个地图截图拼合在一起形成一个更大的区域地图.将多个漫画图像合并成一本漫画册等.这项技术可以方便地将多张 ...

  8. java 合并和拆分单元格_如何轻松合并和拆分电子书

    java 合并和拆分单元格 Whether you want to merge collections of short stories into a DIY anthology, or you wa ...

  9. 怎样能把两张照片拼成一张图片,1分钟搞定

    怎样能把两张照片拼成一张图片?图片拼合的应用场景是很多的.比如将几张相册中的照片拼成一张合影.将多个地图截图拼合在一起形成一个更大的区域地图.将多个漫画图像合并成一本漫画册等.这项技术可以方便地将多张 ...

最新文章

  1. 【深度学习】深入浅出nnUnet的数据处理方法
  2. “人肉”背后隐藏的网络风险
  3. 云漫圈 | 我觉得我的手机被监听了。。。
  4. Java 并发(JUC 包-02)
  5. java拓扑圆形布局算法
  6. eclipse汉化.设置为中文 简单好操作 java初学者看过来
  7. c语言正确声明的格式,c语言函数声明(c语言函数声明格式)
  8. postgresql如何优雅地清理磁盘空间碎片VACUUM
  9. 小心!QQ和MSN聊天记录也会随时被监控
  10. 置换和轮换(新姿势,摘自黑书)
  11. 图片马赛克去除工具_黑科技!利用 AI 技术,马赛克终于可以去掉了
  12. 矩阵可逆的条件以及特征值、特征向量与可对角化条件
  13. OpenCV之Vec3f
  14. 7年python程序员总结 - Python学习方法和高手养成
  15. 新年拍照好伙伴,vivo S12 Pro前后都精彩
  16. day03.2-寻址方式
  17. 不使用采集卡,实现相机手机多机位直播
  18. 清空MySQL单库下所有表数据 || 删除MySQL单库下所有表
  19. 白盒测试:语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖...
  20. fx5u以太网通讯设置_图文简述三菱FX 5U以太网通讯的8大功能,你会用几种?

热门文章

  1. Chrome多开高低版本分身及禁用谷歌更新(window11)
  2. python入门推荐
  3. html css背景图居中显示,网站背景图居中自适应以及拉伸填充CSS代码解决方法
  4. WebAssembly入门-未来可能发生的巨变
  5. 日历控件FullCalendar中文API
  6. BUUCTF 还原大师 1
  7. win10(通过新建用户)局域网共享文件
  8. win10家庭版 Antimalware Service Executable 如何关闭
  9. 荔枝派ZERO_修改uboot添加自己的屏幕驱动(一)
  10. 为什么吃饭的时候不要讲话