我正在开发一个小程序,可以按颜色剪切图像。
使用此示例图像最容易解释:
我想创建一个只有紫色形式的新图像,没有黑框。
有人有什么想法吗?我正在使用 Java 2D,所以我认为我需要使用第一个图像的紫色区域创建一个对象“形状”。
最佳答案
如果图像确实像您所显示的图像,您可以:
- 将图像加载到 BufferedImage(使用 ImageIO.read())
- 创建一个相同大小的新 BufferedImage,确保它具有 Alpha 层(例如将其类型设置为 BufferedImage.TYPE_4BYTE_ABGR)
- “手动”依次遍历加载的 BufferedImage 中的每个像素,使用 getRGB() 获取像素颜色并检查它是否为黑色
- 如果颜色为黑色,则将新图像中相应的像素设置为透明,否则设置为第一个图像中的原始颜色(请参阅 setRGB() 方法)
- 保存新图像(使用 ImageIO.write())
还有更奇特的方法,但这种简单的方法很好且易于理解,并且适用于您展示的类型的图像。
关于java - 如何使用颜色图案剪切图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2772598/