PNG - 是否可以使用 Java 2D 减少调色板?
如果我将 PNG 图像作为 BufferedImage 打开,是否可以减少 PNG 图像中的调色板,以便减少颜色(每像素位数/颜色深度更少)?
例如,如果您查看维基百科中的 颜色深度,我想在我的中使用 16 种颜色PNG 图像(右侧第三张图像)。
如果 Java 2D 无法做到这一点,是否有一个库可以让我有效地做到这一点?
If I have a PNG image opened as a BufferedImage, is it possible to reduce the palette in the PNG image so that there is less colour (less bits per pixel / colour depth)?
For example, if you look at Colour depth in Wikipedia, I would like to use 16 colours in my PNG image (3rd image down the right hand side).
If it's not possible with Java 2D, is there a library out there that will allow me to do this effectively?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用下部调色板创建一个新的 BufferedImage 并使用
createGraphic()
获取Graphics2D
对象。在图形上绘制原始图像。dispose()
图形就在这里。Create a new BufferedImage with the lower palette and use
createGraphic()
to acquire aGraphics2D
object. Draw the original image on the graphics.dispose()
the graphics and here you are.我认为 Martijn Courteaux 是对的:
以下是示例实现:
I think Martijn Courteaux was right:
Here is example implementation: