2011-01-20 6 views
1

私はJavaで画像タイルを作成しており、非常に大きなテキスト(200,000以上のフォントサイズ)を作成する必要があります。しかし、フォントサイズが一定のしきい値を超えると、JavaのGraphicsエンジン(JDK1.6.0 .18)はもはや文字列を正しく描画しません。 私のWin7/64環境では、Helvetica文字は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

答えて

0

JDKのバージョンを使用しているが、最新のJDK 6のリリースだけでなく、最新のJDK 7ベータ版を試してみてください 。代わりにApache Batikを使用してください。

+0

私はJDK1.6(64b)を使用しています。 – Anne

関連する問題