0

如何使用 Java 为 XML 文档创建缩略图?

我需要为 XML 文件创建缩略图。我更喜欢将该 XML 转换为图像,但我失败了。缩略图应该是 XML 内容的预览。

我试过这段代码:

FileOutputStream os = new FileOutputStream("sample");
Thumbnails.of("file-path").size(100,100).toOutputStream(os);

以上是将图像转换为缩略图的代码,但我需要为 XML 创建缩略图。我仍然没有找到将 XML 转换为图像的代码。

4

1 回答 1

0

基本上你可以分两步做到这一点:

仅以文本形式读取您的 XML 文件

您只需要将原始文本行放入缓冲区以供将来使用。

在 Java 中创建图像

您需要使用 Java API 创建一些具有背景颜色的图像,并使用您选择的字体在其上绘制文本。

到目前为止,这是一个使用 Java的工作示例,不包括阅读部分:

String[] aLines = {
    "import ij.IJ;",
    "import ij.ImagePlus;",
    "import ij.gui.Line;",
    "import ij.gui.Roi;",
    "import ij.plugin.PlugIn;",
    "import ij.process.ImageProcessor;",
    "import java.awt.Container;",
    "import java.awt.FlowLayout;",
    "import java.awt.BorderLayout;",
    "import java.awt.event.ActionListener;",
    "import java.awt.event.ActionEvent;",
    "import javax.swing.JDialog;",
    "import javax.swing.JPanel;",
    "import javax.swing.JLabel;",
    "import javax.swing.JButton;",
};

BufferedImage img = new BufferedImage(80,100,BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = img.createGraphics();

g2d.setColor( Color.WHITE );
g2d.fillRect(0,0,img.getWidth(),img.getHeight());

g2d.setPaint(Color.GRAY);
g2d.setFont(new Font("Courier New",Font.PLAIN,6));
FontMetrics fm = g2d.getFontMetrics();

int nCharactersHorizontal = img.getWidth() / fm.charWidth('a') - 1;
int nCharactersVertical = img.getHeight() / 6 - 1;
int x = 2;
int y = 0;

for(String sLine : aLines)
{
    y += 6;

    g2d.drawString(sLine.substring(0,Math.min(sLine.length(),nCharactersHorizontal)),x,y);
}


g2d.dispose();

try
{
    ImageIO.write(img,"png",new File("path/to/your/file.png"));
}
catch(Exception e)
{
    e.printStackTrace();
}
于 2013-06-08T09:30:04.837 回答