import javax.imageio.ImageIO; import java.awt.*; import java.awt.font.FontRenderContext; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; /** * @author yaoyuanliang * @date 2018/1/19 */ public class FontImageUtil { public static byte[] generateImage(String name,int width,int height,String fontName,int size){ ByteArrayOutputStream out = new ByteArrayOutputStream(); try { // Create a BufferedImage object BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); // Get Graphics2D Graphics2D g2d = image.createGraphics(); // ---------- Add the following code to make the background transparent ----------------- image = g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT); g2d.dispose(); g2d = image.createGraphics(); // ---------- end of background transparent code ----------------- // draw g2d.setColor(new Color(255,0,0)); g2d.setStroke(new BasicStroke(1)); FontRenderContext context = g2d.getFontRenderContext(); Font font= new Font(fontName,Font.BOLD,size); g2d.setFont(font); Rectangle2D bounds = font.getStringBounds(name, context); double x = (width - bounds.getWidth()) / 2; double y = (height - bounds.getHeight()) / 2; double ascent = -bounds.getY(); double baseY = y + ascent; // draw the string g2d.drawString(name, (int)x+25, (int)baseY); // release the object g2d.dispose(); // save document ImageIO.write(image, "png",out); } catch (IOException e) { e.printStackTrace (); } return out.toByteArray(); } @Test public void test_19(){ try { String name="Aixinjue"; int width=280; int height=120; String fontName="Xue Wenxuan pen font"; int size=66; byte[] bytes = FontImageUtil.generateImage(name, width, height, fontName, size); String dic = "D:\\12\\"; String ctime = System.currentTimeMillis()+""; File file = new File(dic+ctime+".png"); FileUtils.writeByteArrayToFile(file,bytes); } catch (IOException e) { e.printStackTrace (); } } }
Generate text images
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=326355364&siteId=291194637
Ranking