| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- package com.jeeplus.common.utils;
- import java.awt.*;
- import java.awt.image.BufferedImage;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.IOException;
- import java.io.OutputStream;
- 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 void TextToPic(String text, int width, int height,int fontSize,String filepath) {
- try {
- File file = new File(filepath);
- Font font = new Font("微软雅黑", 0, fontSize);//sans
- BufferedImage bi = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
- Graphics2D g2 = bi.createGraphics();
- g2.setBackground(new Color(0,188,212));
- g2.clearRect(0, 0, width, height);
- //btn2文本
- g2.setColor(Color.white);
- g2.setFont(font);
- g2.drawString(text, (width - (text.length() * fontSize)) / 2 + 0,(height - fontSize) / 2 +45);
- g2.dispose();
- /*Graphics2D g2 = bi.createGraphics();
- g2.setColor(new Color(255, 120, 89));
- //g2.setBackground(new Color(56,110,162));
- g2.clearRect(0, 0, width, height);
- g2.setFont(font);
- g2.setColor(Color.white);
- 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 +45, fontSize);
- g2.dispose();*/
- ImageIO.write(bi, "png", file);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static void TextToAliyunPic(String text, int width, int height, int fontHeight,Color bground, ByteArrayOutputStream outputStream) {
- try {
- Font font = new Font("微软雅黑", 0, fontHeight);//sans
- BufferedImage buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
- Graphics2D gd = buffImg.createGraphics();
- //设置透明 start
- buffImg = gd.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
- gd=buffImg.createGraphics();
- //设置透明 end
- gd.setFont(new Font("微软雅黑", Font.PLAIN, fontHeight)); //设置字体
- gd.setColor(Color.black); //设置颜色
- gd.drawString(text, width/2-fontHeight*text.length()/2,fontHeight);
- ImageIO.write(buffImg, "png", outputStream);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- 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)
- {
- BufferedImage imgMap = drawTranslucentStringPic(400, 80, 36,"欢迎访问我的博客");
- File imgFile=new File("D://www.cxyapi.com.png");
- try
- {
- ImageIO.write(imgMap, "PNG", imgFile);
- } catch (IOException e)
- {
- e.printStackTrace();
- }
- System.out.println("生成完成");
- }
- public static BufferedImage drawTranslucentStringPic(int width, int height, Integer fontHeight,String drawStr)
- {
- try
- {
- BufferedImage buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
- Graphics2D gd = buffImg.createGraphics();
- //设置透明 start
- buffImg = gd.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
- gd=buffImg.createGraphics();
- //设置透明 end
- gd.setFont(new Font("微软雅黑", Font.PLAIN, fontHeight)); //设置字体
- gd.setColor(Color.ORANGE); //设置颜色
- // gd.drawRect(0, 0, width - 1, height - 1); //画边框
- gd.drawString(drawStr, width/2-fontHeight*drawStr.length()/2,fontHeight); //输出文字(中文横向居中)
- return buffImg;
- } catch (Exception e) {
- return null;
- }
- }
- }
|