TYPE_4BYTE_ABGR 到 TYPE_3BYTE_BGR 转换
我有一个具有透明度的 TYPE_4BYTE_ABGR imageType 的 BufferedImage,我想将其转换为 TYPE_3BYTE_BGR BufferedImage。我尝试在 TYPE_3BYTE_BGR 图像上绘制 TYPE_4BYTE_ABGR 图像,但它改变了颜色。
目的是将透明图像放在白色背景上,因为如果将 TYPE_4BYTE_AGBR 图像写入 .jpg,他会得到黑色 ob 透明区域。
I have a BufferedImage of TYPE_4BYTE_ABGR imageType with transparency and I want to convert it into TYPE_3BYTE_BGR BufferedImage. I tried to draw TYPE_4BYTE_ABGR image on TYPE_3BYTE_BGR one, but it changed colors.
The aim is to put transparent image on white background, because if one just writes TYPE_4BYTE_AGBR image into .jpg, he gets black ob transparent area.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是您需要的代码,您必须将具有 100% Alpha 的相同颜色放入具有 Alpha 通道的新图像中。
如果你想在白色背景上放置透明图像,你确实应该使用不同类型的新 BufferedImage 。这样做的代码是这样的:
This is the code that you need, you have to put the same color with 100% alpha in a new image with alpha channel.
if you want to put a transparent image on a white background you should indeed use a new BufferedImage with different type. The code to do so is this: