java - 如何使用颜色图案剪切图像?

标签 java image colors java-2d shapes

我正在开发一个小程序,可以按颜色剪切图像。

使用此示例图像最容易解释:

black with a purple splotch of color

我想创建一个只有紫色形式的新图像,没有黑框。

有人有什么想法吗?我正在使用 Java 2D,所以我认为我需要使用第一个图像的紫色区域创建一个对象“形状”。

最佳答案

如果图像确实像您所显示的图像,您可以:

  • 将图像加载到 BufferedImage(使用 ImageIO.read())
  • 创建一个相同大小的新 BufferedImage,确保它具有 Alpha 层(例如将其类型设置为 BufferedImage.TYPE_4BYTE_ABGR)
  • “手动”依次遍历加载的 BufferedImage 中的每个像素,使用 getRGB() 获取像素颜色并检查它是否为黑色
  • 如果颜色为黑色,则将新图像中相应的像素设置为透明,否则设置为第一个图像中的原始颜色(请参阅 setRGB() 方法)
  • 保存新图像(使用 ImageIO.write())

还有更奇特的方法,但这种简单的方法很好且易于理解,并且适用于您展示的类型的图像。

关于java - 如何使用颜色图案剪切图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2772598/

相关文章:

WPF 标签前景色

javascript - HSV颜色的有效范围是多少

java - Apache POI - 处理空字段

Django 休息框架 : How to download image with this image send directly in the body

用于检查图像中是否存在红色并调用其他函数的 Python 脚本

css - Img 在移动 css 中拉伸(stretch)

html - CSS3背景随机切割我的图像

java - JFrame 不允许我 drawString();

java - IntStream.iterate 与要添加的交替值

java - 单击按钮时 URL 未打开