JAVA 自定义文字生成图片
2017-02-21 18:02
435 查看
package struts; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.imageio.ImageIO; import sun.swing.SwingUtilities2; public class WordToPic { // public static int getLength(String text) { int length = 0; for (int i = 0; i < text.length(); i++) { if (new String(text.charAt(i) + "").getBytes().length > 1) { length += 2; } else { length += 1; } } return length / 2; } public static String TextToPic(String text, int width, int height,int fontSize) { try { String filepath = "D://" + getDate() + ".png"; File file = new File(filepath); System.out.println("topic=" + text); Font font = new Font("微软雅黑", Font.BOLD, fontSize); BufferedImage bi = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); Graphics2D g2 = (Graphics2D) bi.getGraphics(); g2.setBackground(null); g2.clearRect(0, 0, width, height); g2.setFont(font); g2.setPaint(Color.BLACK); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,0.3f)); g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON); printString(g2, text, (width - (text.length() * fontSize)) / 2 + 0,(height - fontSize) / 2 + 40, fontSize); g2.dispose(); ImageIO.write(bi, "png", file); return "image" + getDate() + ".png"; } catch (Exception e) { e.printStackTrace(); } return ""; } private static void printString(Graphics2D g2d, String str, int x, int y,int fontSize) { FontMetrics metrics = SwingUtilities2.getFontMetrics(null,g2d.getFont()); for (char ca : str.toCharArray()) { int px = metrics.stringWidth("" + ca); g2d.drawString("" + ca, x + (fontSize - px) / 2, y); x += fontSize; } } public static String getDate() { SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); return formatter.format(new Date()); } public static void main(String[] args) throws IOException { TextToPic("中文生成图片", 500, 100, 50); } }
相关文章推荐
- java根据图片和文字生成自定义图片
- java根据图片和文字生成自定义图片
- java生成竖排文字图片
- java--实现将文字生成二维码图片,并在中间附上logo,下方附上文字
- java使用SXSSFWorkbook生成具有图片与文字的Excel表格
- Java在已存在的pdf文件中生成文字和图片--基础
- java 生成文字图片的示例代码
- java 图片与文字生成PDF
- java 通过 itext生成pdf添加,插入文字,图片
- java生成word(文字和图片)
- java生成二维码 并在生成的二维图片加上说明文字
- 【JAVA】使用jacob生成的html,关于文字乱码处理,图片无法显示等问题。
- java文字生成图片
- java 文字生成图片
- java生成二维码图片(有logo),并在图片下方附文字
- java文字生成水印图片并45度倾斜铺满图片(图例在下面)
- java 生成文字图片
- Java-生成验证码图片(自定义内容,尺寸,路径)
- java 文字生成图片
- java 二维码 生成和解析 (中间:图片、文字;底部:文字)