2 czkerl czKerl_ 于 2016.03.02 15:57 提问

java 怎么配置xml,将下面代码的图片链接换到xml里去

package com.imooc;

import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class image {
public static void main(String args[]) {
try {
// 读取第一张图片
File fileOne = new File("E:\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("E:\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(width, 0, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB
// ImageNew.setRGB(0, height, width, ImageOne.getHeight()+ImageTwo.getHeight(), ImageArrayTwo, 0, width);// 设置右半部分的RGB
ImageNew.setRGB(0, height, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB
System.out.println("已经合成图片");
File outFile = new File("E:\out.jpg");
ImageIO.write(ImageNew, "jpg", outFile);// 写图片
} catch (Exception e) {
e.printStackTrace();
}
}
}

3个回答

K532454550
K532454550   2016.03.03 16:26
已采纳

简单啊 用dom4j或者jdom解析xml 然后作为参数传递到你写的这个方法就OK了

K532454550
K532454550   2016.03.03 16:31

示例:用的dom4j 下面maven

dom4j
dom4j
1.6.1

file.xml 为配置文件(win 7 平台)
<?xml version="1.0" encoding="UTF-8"?>

E:\1.jpg
E:\2.jpg
E:\out1.jpg

多了几行读代码的

 try {
            SAXReader reader = new SAXReader();
            Document document = reader.read(new File("E:\\file.xml"));
            Element root = document.getRootElement();
            Element file_first = root.element("file_first");
            Element file_second = root.element("file_second");
            Element file_out = root.element("file_out");

            // 读取第一张图片
            File fileOne = new File(file_first.getText());
            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(file_second.getText());
            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(width, 0, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB
            // ImageNew.setRGB(0, height, width, ImageOne.getHeight()+ImageTwo.getHeight(), ImageArrayTwo, 0, width);// 设置右半部分的RGB
            ImageNew.setRGB(0, height, width, height, ImageArrayTwo, 0, width);// 设置右半部分的RGB
            System.out.println("已经合成图片");
            File outFile = new File(file_out.getText());
            ImageIO.write(ImageNew, "jpg", outFile);// 写图片
            } catch (Exception e) {
            e.printStackTrace();
            }
            }
K532454550
K532454550   2016.03.03 16:31

示例:用的dom4j 下面maven

            <dependency>
              <groupId>dom4j</groupId>
              <artifactId>dom4j</artifactId>
              <version>1.6.1</version>
            </dependency>

file.xml 为配置文件(win 7 平台)

 <?xml version="1.0" encoding="UTF-8"?>
<files>
    <file_first>E:\\1.jpg</file_first>
    <file_second>E:\\2.jpg</file_second>
    <file_out>E:\\out1.jpg</file_out>
</files>
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!