Существует ли максимальный размер шрифта для Java Graphics2D? - PullRequest
1 голос
/ 20 января 2011

Я создаю плитки изображений на Java и требую создания очень больших текстов (размер шрифта более 200 000 ...). Однако кажется, что, когда размер шрифта превышает определенный порог, графический движок в Java (JDK1. 6.0.18) больше не рисует строку правильно. В моей среде Win7 / 64 кажется, что я могу печатать только символы Helvetica размером до 27915 пикселей.

Есть ли способ обойти это? Как я могу нарисовать такие большие символы? Я делаю что-то неправильно? Это известное ограничение?

Пример приложения:

    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 и выше оно как-то отображает назад.

Образец неправильного изображения (с желтым слева, справа / справа: размер = 27 916

1 Ответ

0 голосов
/ 20 января 2011

Какую версию JDK вы используете? Попробуйте последнюю версию JDK 6, а также последнюю бета-версию JDK 7. Или используйте вместо этого Apache Batik .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...