Этот вопрос похож на…
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);