`

图片*合并*追加*横*竖*

 
阅读更多
/**
	  * jointPic
	  * @param files
	  * @param path
	  */
	 public static void jointPic(List<File> files, String path) {   
	        try {
	            Integer allWidth = 0;   // 图片总宽度
	            Integer allHeight = 0;  // 图片总高度
	            List<BufferedImage> imgs = new ArrayList<>(); 
	            for(int i=0; i<files.size(); i++){
	                imgs.add(ImageIO.read(files.get(i)));
	                //竖向
	                if (i==0) {
	                    allWidth = imgs.get(0).getWidth();
	                }
	                allHeight += imgs.get(i).getHeight();
	                
	                 // 横向
//		   	         if (i==0) {
//		   	             allHeight = imgs.get(0).getHeight();
//		   	         }
//		   	         allWidth += imgs.get(i).getWidth();
	                
	              
	             }
	            BufferedImage combined = new BufferedImage(allWidth, allHeight, BufferedImage.TYPE_INT_RGB);  
	            // paint both images, preserving the alpha channels  
	            Graphics g = combined.getGraphics();   
	             // 竖向合成
	            Integer height = 0;
	            for(int i=0; i< imgs.size(); i++){
	                g.drawImage(imgs.get(i), 0, height, null);  
	                height +=  imgs.get(i).getHeight();
	            }
 
	         // 横向合成
//	         Integer width = 0;
//	         for(int i=0; i< imgs.size(); i++){
//	             g.drawImage(imgs.get(i), width, 0, null);
//	             width +=  imgs.get(i).getWidth();
//	         }
	         
	            ImageIO.write(combined, "jpg", new File(path));  
	            System.out.println("===合成成功====");
	        } catch (Exception e) {
	            System.out.println("===合成失败====");
	            e.printStackTrace();
	        }
	    }




   
public static void main(String[] args) throws Exception{
        List<File> files = new ArrayList<>();   
        File file1 = new File("C:/Desktop/NO1.jpg");
        File file2 = new File("C:/Desktop/NO2.jpg");
        files.add(file1);
        files.add(file2);
        String path = "C:/Users/Administrator/Desktop/new.jpg";
        jointPic(files, path);  
    }
分享到:
评论

相关推荐

    C语言合并多个char *类型的字符串

    要合并这些字符串,我们需要创建一个新的字符数组来存储结果,并确保在每次追加时正确处理内存。以下是一种可能的实现方式: 1. **内存分配**:首先,我们需要计算所有字符串的总长度,以便为新字符串分配足够的...

    用java把2个tiff或图片合并成一个tiff或图片

    在Java编程环境中,将两个TIFF(Tagged Image File Format)图像或普通图像合并成一个单一的TIFF或图像文件,需要对图像处理有深入的理解,特别是关于图像格式、颜色模型以及位深度的知识。以下是一些相关的技术要点...

    刷新追加图片

    现在我们详细讨论如何在iOS应用中实现“刷新追加图片”功能。 首先,我们需要理解`UIScrollView`是iOS中的基础滚动视图,它可以包含多个子视图并支持上下左右滚动。`UICollectionView`是基于`UIScrollView`的一个更...

    矢量图层追加、栅格化、导出为图片

    ### 矢量图层追加、栅格化与导出为图片 #### 矢量图层追加概述 在GIS(地理信息系统)领域,处理空间数据时,经常需要将多个矢量图层合并成一个单一的图层以便于进一步分析或可视化。在ArcGIS软件中,通常可以通过...

    C#打开二进制图片文件 读写并追加数据

    可以将要隐藏的信息编码成二进制数据,然后在不影响图片正常显示的情况下,将这些数据追加到图片的元数据或者非显眼的像素值中。 5. **识别隐藏的密码**: 要识别这些隐藏的密码,需要重新打开图片文件,读取附加...

    java 使用POI合并两个word文档.docx

    4. 将两个 Word 文档的内容合并到新的 Word 文档中,使用 appendBody 方法将第二个文档的内容追加到第一个文档中。 5. 保存新的 Word 文档,使用 FileOutputStream 保存文档。 在上面的代码中,我们可以看到,main ...

    通过BufferedImage实现将几张图片合成一张图片,图片效果类型为依次排列图片

    接下来,我们可以创建一个方法,接收四张图片的路径作为参数,然后将这些图片合并成一张新的图片。这个方法分为以下几个步骤: 1. **读取图片**:使用`ImageIO.read()`方法读取每一张图片到`BufferedImage`对象中。...

    HEX合并软件+可用于两个HXE文件的合并

    5. **合并算法**:不同的合并策略可能适用于不同类型的HXE文件。例如,如果文件代表连续的内存区域,简单的追加可能就足够了;如果文件包含重叠或交错的数据,则可能需要更复杂的算法来处理。 6. **用户界面与交互*...

    php 操作数组(合并,拆分,追加,查找,删除等)

    1. **合并数组** - `array_merge()` 函数用于合并一个或多个数组,返回一个新的联合数组。如果数组中有相同的字符串键,后面的值会覆盖前面的值。但如果键是数字,后面的值会被添加到后面,而不是覆盖。例如: ```...

    合并EXCEL文件的小工具

    4. **合并选项**:一些高级功能可能包括保留原始格式、合并数据时是否追加行、忽略空单元格等设置。 5. **预览与确认**:在合并前提供预览功能,让用户确认数据的合并效果,避免错误发生。 6. **合并过程**:程序...

    二进制Bin文件合并工具

    4. **合并操作**:合并可以是简单的追加,即将一个文件的数据追加到另一个文件的末尾;也可以是复杂的整合,涉及合并相同类型的数据、去重或根据预定义规则重新排列数据。 5. **错误检查与校验**:为了确保合并后的...

    多文件合并

    3. **合并过程**: - **文本文件合并**:对于文本文件,合并通常是逐行进行的,将一个文件的内容追加到另一个文件的末尾。 - **图像文件合并**:图片合并可能涉及创建一个包含多个图片的PDF或幻灯片文件。 - **...

    Opencv实现追加视频(one after another)

    在OpenCV库中实现将多个视频“追加”在一起,即合并成一个连续的视频文件,是一项常见的任务。这个过程涉及到视频处理的基本概念,包括视频帧的读取、编码、写入以及时间戳的处理。以下是一些关于如何使用OpenCV实现...

    同名文本文件合并器 可将两个文件夹中文件名相同的文本文件进行按顺序合并

    4. **文本合并逻辑**:合并可能涉及两种方式:行对齐合并(如果文件大小不同,可能需要填充空白行以保持行数一致)和逐行追加合并(简单地将一个文件的内容附加到另一个文件的末尾)。此工具采用的是逐行追加合并,...

    Python实现合并同一个文件夹下所有txt文件的方法示例

    1. **合并一个文件夹下所有TXT文件** 这个需求通常出现在数据处理或文本分析的场景中,例如,你可能有一个包含多个日志文件的文件夹,想把它们整合到一起进行统一分析。 **二、合并效果** 合并后,所有的TXT文件...

    遍历文件夹中mdb合并到一个GDB中 120200220103945_mdbgdb合并Append_

    6. **合并图层**:使用`arcpy.Append_management()`函数将mdb中的图层追加到目标GDB中。这个函数需要源数据、目标数据和追加模式(例如,是否需要检查数据的几何一致性)作为参数。 7. **处理错误**:在整个过程中...

    文件追加源码

    在Java编程中,文件追加是一项常见的操作,用于在现有文件末尾添加新的内容而不会覆盖原有数据。这里我们将深入探讨如何使用Java实现文件追加功能,并通过分析提供的"AppendToFile.java"源代码来理解其实现原理。 ...

    财务报告概述(PPT 197页).pptx

    2. **合并范围的确定**:关键在于判断控制的存在,通常涉及母公司的权力、可变回报以及权力的行使能力。这包括对被投资方的实质性权利、主要责任人判断、表决权和其他合同安排的影响,以及对投资方可分割部分的控制...

    JAVA文件分割合并器

    1. **顺序合并**:合并文件时,需要按照原始文件的顺序依次读取每个小文件的内容,并将其追加到新的大文件中。这通常通过创建一个空文件,然后按顺序打开和读取子文件,将内容写入新文件来实现。 2. **多线程合并**...

    合并word文件宏代码产生器

    4. **合并内容**:将每个文件的内容添加到一个主文档中,通常是在主文档的末尾追加。 5. **保存和关闭**:完成合并后,保存这个新的Word文档,并关闭所有打开的Word文件。 6. **生成宏代码**:将上述步骤转化为VBA...

Global site tag (gtag.js) - Google Analytics