2011-01-20 187 views
1

我在Java中創建圖像切片,並要求創建非常大的文本(字體大小超過200,000 ...)但是,似乎當字體大小超過某個閾值時,Java中的圖形引擎(JDK1.6.0 .18)不再正確繪製字符串。 在我的Win7/64環境中,似乎我只能打印高達27915像素大小的海爾維卡字符。Java Graphics2D有最大字體大小嗎?

有沒有辦法解決這個問題?我如何繪製這麼大的字符?難道我做錯了什麼?這是一個已知的限制嗎?

一個樣本應用程序:

import java.awt.*; 
    import java.awt.image.*; 
    import java.io.*; 
    import com.sun.image.codec.jpeg.*; 

    public class FontTest { 



public static void main(String[] args) throws Exception { 
     BufferedImage image = new BufferedImage(1000,1000,BufferedImage.TYPE_INT_RGB); 
     Graphics2D g = Zoomer.getGraphics(image); 

     int fontsize = 27916; 
     Font font = new Font("Helvetica",Font.PLAIN,fontsize); 
     g.setFont(font); 
     g.setColor(Color.YELLOW); 

     g.drawString("Z", 5, 990); 

     JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(new FileOutputStream(new File("image."+fontsize+".jpg"),false)); 
     JPEGEncodeParam param = jpeg.getDefaultJPEGEncodeParam(image); 
     jpeg.encode(image); 
     System.out.println("Ready with fontsize:"+fontsize); 
    } 

任何圖像高達27915顯示正確的Z的左底部部分,但對27915或更高時,它顯示它向後不知。錯了圖像的

樣品(用黃色的左側I/O右:?。size=27,916 JDK版本是否使用的是

回答

0

嘗試最新的JDK 6版本以及最新的JDK 7測試版 或者使用Apache Batik來代替

+0

我正在使用JDK1.6(64b) – Anne 2011-01-20 14:30:01