`
zy116494718
  • 浏览: 477763 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java图片合成

    博客分类:
  • Java
 
阅读更多

下面这个例子介绍如何把3张图片合在一张图片里,用的是java自己的类实现的:

public class Test {
	public static void main(String[] args){
		
		try {
			 Test.main("E:/write.jpg","E:/z1.jpg","E:/z2.jpg","E:/z3.jpg","E:/z4.jpg") ; //第一张图是白色背景,中间三张是要合成的,最后一个是最后合成的照片名称
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	

	public static void main(String from1,String from2,String from3,String from4,String toPaht) {
		try {
			

			
			/*  BufferedImage的setRGB参数(startX,startY,w,h,rgbArray,offset,scansize)			startX, startY 是要提取的区域左上角图像的坐标
			 w, h 是要提取的区域的宽度和高度
			 rgbArray 是接收像素值的整数数组
			 offset 是数组中接收第一个像素值的位置的索引。
			 scansize 是图像中相邻两行中具有相同行索引的像素的索引偏移值。
			 */	
		
		// 读取第一张图片
			
  /*下面写的是直接读取硬盘上的文件,如果要读取http://img03.taobaocdn.com/a.jpg这种的话,那么要用如下方法
      
      URL url = new URL(imagePath);
   BufferedImage ImageOne = ImageIO.read(url); 
  */

		File fileOne = new File(from1);
		BufferedImage ImageOne = ImageIO.read(fileOne);
	
		int width1 = ImageOne.getWidth();// 图片宽度
		int height1 = ImageOne.getHeight();// 图片高度

		// 从图片中读取RGB
		int[] ImageArrayOne = new int[width1 * height1];
		ImageArrayOne = ImageOne.getRGB(0, 0, width1, height1, ImageArrayOne,
		0, width1);

		// 对第二张图片做相同的处理
		File fileTwo = new File(from2);
		BufferedImage ImageTwo = ImageIO.read(fileTwo);
		int width2 = ImageTwo.getWidth();// 图片宽度
		int height2 = ImageTwo.getHeight();// 图片高度

		int[] ImageArrayTwo = new int[width2 * height2];
		ImageArrayTwo = ImageTwo.getRGB(0, 0, width2,height2, ImageArrayTwo,
		0, width2);
		
		
		// 对第三张图片做相同的处理
		File fileThree = new File(from3);
		BufferedImage ImageThree = ImageIO.read(fileThree);
		
		int width3 = ImageThree.getWidth();// 图片宽度
		int height3 = ImageThree.getHeight();// 图片高度

		int[] ImageArrayThree = new int[width3 * height3];
		ImageArrayThree = ImageThree.getRGB(0, 0, width3,height3, ImageArrayThree,
		0, width3);
		
		// 对第四张图片做相同的处理
		File fileFour = new File(from4);
		BufferedImage ImageFour = ImageIO.read(fileFour);
		/**
		 * 因为第四张图片很大,要压缩一下,所以要重新在缓冲中生成一张压缩后的图,然后赋值给原图,这里是压缩到200*200的
		 */
		BufferedImage newImage = new BufferedImage(200,200,ImageFour.getType());
		Graphics g = newImage.getGraphics();
		g.drawImage(ImageFour, 0,0,200,200,null);
		g.dispose();
		ImageFour = newImage;
		
		int width4 = ImageFour.getWidth();// 图片宽度
		int height4 = ImageFour.getHeight();// 图片高度
		int[] ImageArrayFour = new int[width4 * height4];
		ImageArrayFour = ImageFour.getRGB(0, 0, width4,height4, ImageArrayFour,
		0, width4);

		// 生成新图片

		BufferedImage ImageNew = new BufferedImage(560, 560,
		BufferedImage.TYPE_INT_RGB);
		ImageNew.setRGB(0, 0, width1, height1, ImageArrayOne, 0, width1);// 设置第一张图的RGB,这里是一张白色的背景图
		ImageNew.setRGB(50, 70, width2, height2, ImageArrayTwo, 0, width2);// 设置第二张图的RGB
		ImageNew.setRGB(50, 280, width3, height3, ImageArrayThree, 0, width3);// 设置第三张图的RGB
		ImageNew.setRGB(300, 300, width4, height4, ImageArrayFour, 0, width4);// 设置第四张图的RGB
		
		File outFile = new File(toPaht);
		ImageIO.write(ImageNew,"jpg", outFile);// 写图片
		} catch (Exception e) {
		e.printStackTrace();
		}
		}

}

 

分享到:
评论

相关推荐

    Java合成照片

    在Java编程语言中,"Java合成照片"是一个关于图像处理的技术,主要涉及到图像的合并、叠加、裁剪、旋转等操作。这个技术广泛应用于各种场景,如社交媒体应用、图形设计工具、数据分析可视化等。下面我们将深入探讨...

    java多张图片合成,图片拼接,图片上写字

    本篇文章将深入探讨如何使用Java实现“多张图片合成”、“图片拼接”以及“图片上写字”的功能。我们将主要围绕提供的`ImgUtil.java`文件进行讲解。 1. **图片合成**: 图片合成是指将多张图片组合成一张新的图片...

    利用Java程序把多张图片合成一张图片

    在Java编程语言中,将多张图片合成一张图片是一项常见的图像处理任务,广泛应用于各种应用场景,如社交媒体拼图、报告生成、数据可视化等。要实现这个功能,我们需要使用到Java的图像处理库,如Java AWT(Abstract ...

    Java将图片合并为视频

    在Java编程环境中,将一系列图片合并成视频是一个常见的多媒体处理任务。这个项目文件提供了一种实现方式,让我们来深入探讨一下这个过程中的关键知识点。 首先,我们要了解的是Java中的多媒体处理库。在这个项目中...

    Java将多张图片合成为一张图像.rar

    Java将多张图片合成为一张,类似于PhotoShop中的合成图片,将两张图片合成输出为一张JPG,两幅图像叠加在一起,这是个比较基础的Java图像合成的例子。在JAVA中实现图片合成,本例的实现核心代码如下:  InputStream...

    java 合成 gif

    Java 合成 GIF 是一种利用编程技术将多张静态图片(如JPG)组合成一个动态GIF图像的过程。在Java中,这个过程涉及到多个关键概念和技术,包括图像处理、编码算法以及文件格式理解。以下是对这些知识点的详细说明: ...

    图片处理工具(java实现图片合成、文字添加等)

    通过java实现对图片的进行合成处理,合成过程可制定位置,主要场景例如生成工作证或者胸牌

    java实现图片合成的源码

    java实现图片合成的合成。可以使两张或多张图片合成起来,并且不失真

    安卓 图片合成视频(利用javacv)

    本项目的核心目标是通过JavaCV将指定目录下的JPG图片序列合成成一个视频文件。 首先,我们需要了解JavaCV的基本用法。JavaCV提供了一个Java接口,可以直接调用OpenCV和FFmpeg的函数。在Android中,我们通常需要添加...

    java:图片列表合并转pdf完整示例

    在Java编程环境中,将图片列表合并转换为PDF文档是一项常见的任务,特别是在报告生成、文档整理或数据可视化等场景。这个示例将详细讲解如何通过Java实现这一功能,包括必要的库引用、代码实现以及可能遇到的问题。 ...

    Java实现视频 音频 图片的合成功能.rar

    在Java编程环境中,实现视频、音频和图片的合成功能是一项技术挑战,涉及到多媒体处理、图像操作和文件I/O等多个领域。本项目提供了一个完整的解决方案,包括安装文件和详细的Java源代码,允许开发者进行二次开发和...

    java ffmpeg实现视屏剪辑、srt字幕嵌入、视频合成、图片转视频

    java ffmpeg实现视屏剪辑、srt字幕嵌入、视频合成、图片转视频 通过test类运行。demo基于jave的源码。对ffmpeg的两种系统下的执行文件进行了替换。所以ffmpeg版本是最新的。可以执行ffmpeg官网上大多数的命令

    java代码实现拼接图片

    选择图片,拼接图片,Java拼接多张图片,连接在一起 代码程序。

    java程序把两张图片合成在一起

    在Java编程语言中,将两张图片合成在一起是一个常见的图像处理任务。这个过程涉及到对图像文件的读取、处理以及合并,通常使用Java的内置库如`java.io`和`javax.imageio`。在这个场景中,`FileInputStream`用于读取...

    Java合成图片Java合成图片

    Java合成图片

    JAVA生成二维码,图片合成,图片添加文字对应资源和代码

    综上所述,这个资源包提供了基于Java的二维码生成、图片合成和文字添加的实例,对于开发者来说,这是一个学习和实践相关技能的好材料。你可以通过阅读和理解`ZxingUtils.java`中的代码,以及参考提供的链接教程,来...

    java 操作图片,往图片写字,将多图片合并

    根据给定文件的信息,本文将围绕Java操作图片的方法展开,主要涵盖往图片上添加文字以及合并多张图片的功能。这些技术在制作许可证书、安全证书等应用场景中非常实用。 ### Java操作图片概述 #### 一、加载图片 在...

    大量图片合成到一个pdf文件

    总结,将大量图片合成到一个PDF文件,使用Java和PDFBox库是一个高效且灵活的方法。通过理解这些基本操作,你可以根据具体需求进行定制,创建出满足各种场景的PDF文档。在处理大批量图片时,可能还需要考虑性能优化,...

    图片工具类(多张图片合成,图片拼接,图片上写字)

    个人亲测,好用,可以用几张图拼成一张图,我用一个模板图片上面添加了微信头像,一个二维码还有一个昵称,好用,希望能帮到你们。

    java实现多张jgp图片转动画gif格式

    在Java编程环境中,将多张JPEG格式的图片转换为动态GIF格式是一项常见的图像处理任务。这个Demo展示了如何使用Java的图像处理库来完成这一过程。以下是对这个过程的详细解释: 首先,我们需要一个能够处理GIF格式的...

Global site tag (gtag.js) - Google Analytics