阅读背景:

关于JAVA 两张图片PNG 格式合并 重叠居中的方法。

来源:互联网 

终究弄定了,直接贴上代码:

/**
	 * 待合并的两张图必需满足这样的条件,如果程度方向合并,则高度必需相等;如果是垂直方向合并,宽度必需相等。
	 * mergeImage办法不做断定,自己断定。
	 * 
	 * @param img1
	 *            待合并的第一张图
	 * @param img2
	 *            带合并的第二张图
	 * @return 返回合并后的BufferedImage对象
	 * @throws IOException
	 */
	private static BufferedImage mergeImage(BufferedImage img1, BufferedImage img2)
			throws IOException {
		int w1 = img1.getWidth();
		int h1 = img1.getHeight();
		int w2 = img2.getWidth();
		int h2 = img2.getHeight();
		// 从图片中读取RGB
		int[] ImageArrayOne = new int[w1 * h1];
		ImageArrayOne = img1.getRGB(0, 0, w1, h1, ImageArrayOne, 0, w1); // 逐行扫描图象中各个像素的RGB到数组中
		int[] ImageArrayTwo = new int[w2 * h2];
		ImageArrayTwo = img2.getRGB(0, 0, w2, h2, ImageArrayTwo, 0, w2);
		// 生成新图片
		BufferedImage DestImage = null;
		DestImage = new BufferedImage(w1,h1,BufferedImage.TYPE_INT_RGB);
        
		DestImage.setRGB(0, 0, w1, h1, ImageArrayOne, 0, w1); // 设置上半部份或左半部份的RGB
		// 加载水印图片文件
		Graphics2D resizedG = DestImage.createGraphics();
		resizedG.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,(float) 1));
		resizedG.drawImage(img2, w1 / 2 - w2 / 2, h1 / 2 - h2 / 2, null);
		resizedG.dispose();
		 
		
		
		// 画图

		return DestImage;
	}/**
	 * 待合并的两张图必需满足这样的条件,如果程度方向合并,则




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: