Java动态生成图片可存盘可直接调用
这个是在做Java往PDF中插入图片时,遇到的需要动态生成图片的问题,生成的图片使用后需要销毁,不需要存盘。
private static BufferedImage createImage(String content) throws IOException{
Integer width=450;
Integer height=200;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D)image.getGraphics();
g2.setBackground(Color.WHITE);
g2.clearRect(0, 0, width, height);
g2.setPaint(Color.BLACK);
Font font = new Font("华文楷体", Font.PLAIN, 120);
FontRenderContext context = g2.getFontRenderContext();
Rectangle2D bounds = font.getStringBounds(content, context);
double x = (width - bounds.getWidth()) / 2;
double y = (height - bounds.getHeight()) / 2;
double ascent = -bounds.getY();
double baseY = y + ascent;
g2.setFont(font);//设定打印字体
g2.drawString(content, (int)x, (int)baseY); //设置打印内容和打印位置,x:水平位置,y:垂直位置
g2.dispose();
//需要输出图片,将此条注释去掉,jpg可换成其他格式,output为输出路径
// ImageIO.write(image, "jpg", output);// 输出jpg图片
return image;
}
java.awt.Image image2 = createImage(noImgManName);
image = Image.getInstance(image2,null);
注意:
image是com.itextpdf.text.Image包中的