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
私はJDK1.6(64b)を使用しています。 – Anne