Сохранить JPanel как изображение HD качества

Я пытаюсь сохранить JPanel как изображение (Png, Jpg, что угодно), но с Graphics2D качество очень низкое. Мой JPanel содержит в основном текст, и я хочу напечатать панель 4 раза на бумаге формата А4, чтобы она заполняла страницу. Но текст похож на размытый, когда я печатаю изображение. Я попытался создать изображение формата A3, а затем распечатать его в меньшем формате A4. Качество повышается очень мало, почти незначительно.

Вот функция, которую я использую для генерации изображения на основе этого ScreenImage. Класс, который я нашелВот :

public void exportToPNG(JRootPane panel){
    Dimension size = panel.getSize();
    BufferedImage image = new BufferedImage(
            size.width, size.height * 4 /* use the same image 4 times */
            , BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = image.createGraphics();

    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    g2.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
    g2.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
    g2.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
    g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);

    g2.drawImage(ScreenImage.createImage(panel), 0, 0, size.width, size.height, null);
    g2.drawImage(ScreenImage.createImage(panel), 0, size.height, size.width, size.height, null);
    g2.drawImage(ScreenImage.createImage(panel), 0, size.height * 2, size.width, size.height, null);
    g2.drawImage(ScreenImage.createImage(panel), 0, size.height * 3, size.width, size.height, null);


    try{
        ImageIO.write(image, "png", new File("D:\\test-image.png"));

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

Вот пример изображения, которое я сгенерировал:нажмите на ссылку..

Вы должны увидеть этот размытый эффект на изображении даже при небольшом увеличении.

Есть ли способ повысить качество? или выделенная библиотека?

Ответы на вопрос(0)

Ваш ответ на вопрос