如何使用彩色图案剪切图像?

daf*_*ero 2 java image colors shape java-2d

我正在开发一个小程序,用颜色剪切图像.

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

黑色,紫色斑点的颜色

我想用紫色的形状创建一个新的图像,没有黑框.

有没有人有任何想法?我正在使用Java 2D,所以我认为我需要使用第一张图像的紫色区域创建一个对象"Shape".

Nei*_*fey 5

如果图像与您展示的图像完全相同,您可以:

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

有更好的方法,但这个简单的方法很好,可以理解,并适用于您所显示类型的图像.