从黑色到红色的BufferedImage重新着色不起作用

时间:2014-12-30 05:49:30

标签: java image-processing graphics2d java-2d

我有一张我最初创建的图像作为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.
		 
	}

0 个答案:

没有答案