Соединение двух изображений в Java - добавлен оранжевый фон - PullRequest
0 голосов
/ 03 мая 2018

Этот вопрос похож на…

Java BufferedImage сохраняет с нежелательным цветом фона

… но касается .jpg, а не .png.

Я соединяю два изображения вместе, используя следующий код Java, и таинственным образом добавляется оранжевый фон. Как от этого избавиться?

Обратите внимание, что я пытаюсь покрыть свои базы, используя setColor и setBackground, и оба clearRect и fillRect.

Обратите внимание, что источником двух изображений является PDF, извлеченный с использованием PDFBox

public static BufferedImage joinBufferedImage(BufferedImage img1, BufferedImage img2) {
    int offset = 0;
    int width = Math.max(img1.getWidth() , img2.getWidth()) + offset;
    int height = img1.getHeight() + img2.getHeight() + offset;

    BufferedImage newImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2 = newImage.createGraphics();

    g2.setColor(Color.WHITE);
    g2.setBackground(Color.WHITE);
    g2.clearRect(0, 0, width, height);
    g2.fillRect(0, 0, width, height);

    g2.drawImage(img1, null, 0, 0);
    g2.drawImage(img2, null, 0, img1.getHeight() + offset);
    g2.dispose();

    return newImage;
}
BufferedImage joined = joinBufferedImage(bim, bim2);
ImageIO.write(joined, "jpg", imageFile);    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...