我尝试使用thumbnailator库旋转图像。它工作正常,但我没有看到任何方法来设置新图像的背景颜色。
Thumbnails.of(image).rotate(45).toByteArray()
如果我将图像旋转45度,则会使角落变黑。如果我需要设置其他颜色,我该怎么做?
带黑色背景的旋转图像示例:
答案 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);