如何使用thumbnailator旋转图像时设置背景颜色

时间:2015-03-10 13:57:00

标签: java image

我尝试使用thumbnailator库旋转图像。它工作正常,但我没有看到任何方法来设置新图像的背景颜色。

Thumbnails.of(image).rotate(45).toByteArray()

如果我将图像旋转45度,则会使角落变黑。如果我需要设置其他颜色,我该怎么做?

带黑色背景的旋转图像示例:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以转换为“中间”图像,然后应用背景色。

这大部分未经测试。

Color newBackgroundColor = java.awt.Color.WHITE;

// apply your transformation, save as new BufferedImage
BufferedImage transImage = Thumbnails.of(image)
        .size(100, 60)
        .rotate(45)
        .outputQuality(0.8D)
        .outputFormat("jpeg")
        .asBufferedImage();

// Converts image to plain RGB format
BufferedImage newCompleteImage = new BufferedImage(transImage.getWidth(), transImage.getHeight(),
        BufferedImage.TYPE_INT_ARGB);
newCompleteImage.createGraphics().drawImage(transImage, 0, 0, newBackgroundColor, null);

// write the transformed image with the desired background color
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(newCompleteImage, "jpeg", baos);