java获取像素颜色,实现透明渐变叠加

java获取像素颜色,实现透明渐变叠加,java,colors,gradient,transparent,Java,Colors,Gradient,Transparent,在我的应用程序中,我有一个图像(世界地图)作为背景图片。在这张背景图片上,有一个具有颜色渐变和透明填充效果的多边形 在这里您可以找到覆盖的代码片段: public void paint(Graphics g) { //draw a polygon with a gradient filling effect Graphics2D g2 = (Graphics2D)g; GradientPaint gp = new GradientPaint(x1, y1,

在我的应用程序中,我有一个图像(世界地图)作为背景图片。在这张背景图片上,有一个具有颜色渐变和透明填充效果的多边形

在这里您可以找到覆盖的代码片段:

public void paint(Graphics g) {

      //draw a polygon with a gradient filling effect
      Graphics2D g2 = (Graphics2D)g;
      GradientPaint gp = new GradientPaint(x1, y1, color1, x2, y2, color2, false);
      g2.setPaint(gp);
      g2.fill(polygon);

}
有人知道一种方法来获得叠加的一个像素的颜色吗?我不需要颜色,它可以在屏幕上看到,包括背景图片-只是覆盖的颜色

致以最良好的祝愿


Michael

这有点难看,但有效:

GradientPaint gp = new GradientPaint(0, 0, new Color(255, 0, 0, 50), 
                                   10, 10, new Color(128, 255, 0, 150));

ColorModel cm = ColorModel.getRGBdefault();
Rectangle r = new Rectangle(0, 0, 10, 10);
Raster raster = gp.createContext(cm, r, r, new AffineTransform(), null)
                  .getRaster(0, 0, 10, 10);

int[] rgba = raster.getPixel(5, 5, (int[])null);
或者,您也可以将覆盖层绘制成BuffereImage(您首先将其清除为透明)