我有一张我最初创建的图像作为VolatileImage。原始图像是黑色的。我希望在程序控制下,将其重新着色为红色。我转换或拍摄易失性图像的快照,以便我可以将其作为BufferedImage使用,并尝试使用LookUpTable将其重新着色为红色。但是,您在下面看到的代码不起作用。图像仍然是黑色的。有人可以指出出了什么问题吗?我是Java下的图像处理新手。谢谢!
private void recolorAsRed2(VolatileImage sourceImage)
{
short[] red = new short[256];
short[] green= new short[256];
short[] blue= new short[256];
short[] alpha = new short[256];
for (int i = 0; i < 256; i++) {
alpha[i]= 1;
red[i] = 255;
green[i]= 0;
blue[i]= 0;
}
short[][] data= new short[][] {
red, green, blue, alpha
};
BufferedImage dstImage= null;
LookupTable lookupTable= new ShortLookupTable(0, data);
LookupOp op= new LookupOp(lookupTable, null);
dstImage= op.filter(sourceImage.getSnapshot(), dstImage);
Utilities.toBufferedImage(dstImage); // This actually converts the Image back to being a Volatile Image. The method name does not reflect what the code is doing.
}