java Graphics2D繪制文字並居中並解決服務器亂碼問題


package com.test.testImage;

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 javax.imageio.ImageIO;

public class Graphics2DTest {

    public static void main(String[] args) {   
        try {  
            String text = "文字居中";
            int width = 500;  
            int height = 400;  
            // 創建BufferedImage對象  
            BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);  
            // 獲取Graphics2D  
            Graphics2D g2d = image.createGraphics();  
            // 畫圖  
            g2d.setBackground(new Color(255,255,255));  
            //g2d.setPaint(new Color(0,0,0));  
            g2d.setColor(Color.red);
            g2d.clearRect(0, 0, width, height);  
            Font font=new Font("宋體",Font.PLAIN,64);  
            g2d.setFont(font);  
            // 抗鋸齒
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            // 計算文字長度,計算居中的x點坐標
            FontMetrics fm = g2d.getFontMetrics(font);
            int textWidth = fm.stringWidth(text);
            int widthX = (width - textWidth) / 2;
            // 表示這段文字在圖片上的位置(x,y) .第一個是你設置的內容。
            g2d.drawString(text,widthX,100);  
            // 釋放對象  
            g2d.dispose();  
            // 保存文件      
            ImageIO.write(image, "jpg", new File("D:/test.jpg"));  
        }  
        catch(Exception ex) {  
            ex.printStackTrace();  
        }   
    }   
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM