如何使用Java创建XML文档的缩略图?
我需要为XML文件创建缩略图。我更喜欢将XML转换为图像但我失败了。缩略图应该是XML内容的预览。
我试过这段代码:
FileOutputStream os = new FileOutputStream("sample");
Thumbnails.of("file-path").size(100,100).toOutputStream(os);
上面是我将图像转换为缩略图的代码,但我需要为XML创建缩略图。我还没有找到将XML转换为图像的代码。
答案 0 :(得分: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();
}