Javascript 如何将每个像素为8位的灰度图像转换为每个像素仅具有3位表示的图像?

Javascript 如何将每个像素为8位的灰度图像转换为每个像素仅具有3位表示的图像?,javascript,java,image-processing,grayscale,digital,Javascript,Java,Image Processing,Grayscale,Digital,在我的java项目中,我需要一种方法将8位(0225)灰度图像转换为3位(0,7)。有什么想法吗 我用了这个方法,但它给了我 线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常: 坐标出界 我想你只是忘记了除以32不会得到一个整数。 尝试将该值解析为整数,它可能(或不会)解决您的问题 由于错误与数组大小有关,请确保没有超出图像长度和高度的限制。短语“不起作用”告诉我们的不多。您可能会发现这很有用:。将示例更改为使用较少的位实际上不会将图像更改

在我的java项目中,我需要一种方法将8位(0225)灰度图像转换为3位(0,7)。有什么想法吗

我用了这个方法,但它给了我

线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常: 坐标出界


我想你只是忘记了除以32不会得到一个整数。 尝试将该值解析为整数,它可能(或不会)解决您的问题


由于错误与数组大小有关,请确保没有超出图像长度和高度的限制。

短语“不起作用”告诉我们的不多。您可能会发现这很有用:。将示例更改为使用较少的位实际上不会将图像更改为3位灰度图像。图像数据缓冲区的每像素位数仍然与以前相同。--如果要保持近似的像素“颜色”(灰度),应清除较低的位,而不是移位位,因此使用
sample=sample&0xE0
image.getRaster().setSample(x, y, image.getRaster().getSample(x,y, 0)/32)