首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于2张图片合成1张的有关问题

2012-02-15 
关于2张图片合成1张的问题在网上找到这样一段代码 完成图片合并,测试可合并,合并完的图片为纵向,即第一张

关于2张图片合成1张的问题
在网上找到这样一段代码 完成图片合并,测试可合并,合并完的图片为纵向,即第一张图片在上面,第二张图片在下面,但我希望合并为横向合并,不知道该改哪个参数,另请教一下getRGB和setRGB这2个方法中的所有参数含义

Java code
import java.io.File;import java.awt.image.BufferedImage;import javax.imageio.ImageIO;public class TestPic {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        try {               // 读取第一张图片               File fileOne = new File("D:\\1.jpg");               BufferedImage ImageOne = ImageIO.read(fileOne);               int width = ImageOne.getWidth();// 图片宽度               int height = ImageOne.getHeight();// 图片高度               // 从图片中读取RGB                int[] ImageArrayOne = new int[width * height];                ImageArrayOne = ImageOne.getRGB(0, 0, width, height, ImageArrayOne,0, width);               // 对第二张图片做相同的处理               File fileTwo = new File("D:\\2.jpg");               BufferedImage ImageTwo = ImageIO.read(fileTwo);               int[] ImageArrayTwo = new int[width * height];               ImageArrayTwo = ImageTwo.getRGB(0, 0, width, height, ImageArrayTwo,0, width);               // 生成新图片               // BufferedImage ImageNew = new BufferedImage(width * 2, height,               // BufferedImage.TYPE_INT_RGB);               BufferedImage ImageNew = new BufferedImage(width, height*2,BufferedImage.TYPE_INT_RGB);               ImageNew.setRGB(0, 0, width, height, ImageArrayOne, 0, width);// 设置左半部分的RGB               ImageNew.setRGB(0, height, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB               File outFile = new File("D:\\out.jpg");               ImageIO.write(ImageNew, "jpg", outFile);// 写图片               }catch (Exception e) {                      e.printStackTrace();               }    }}


[解决办法]
修改如下:
Java code
BufferedImage ImageNew = new BufferedImage(width * 2, height, BufferedImage.TYPE_INT_RGB);            ImageNew.setRGB(0, 0, width, height, ImageArrayOne, 0, width);// 设置左半部分的RGB            ImageNew.setRGB(width, 0, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB 

热点排行