我是一个完整的编程初学者,我一直试图解决这个问题,但我迷失了。有一些不同版本的问题,但我想我可以在我有一个完成的代码之后解决剩下的问题,所以我只是解释一下。第一部分要求使用DrJava编写程序,该程序将显示图像,等待用户响应,然后将图像缩小为每个颜色通道只有4个级别。它接着说:
“我们想要做的是将每个颜色通道从0-255(8位)范围缩小到0-3(2位)。我们可以通过将颜色通道值除以64来实现。但是,因为我们的实际显示器仍然使用每个颜色通道1个字节,所以0-3的值看起来都非常像黑色(非常低的颜色强度)。为了使它看起来正确,我们需要将值缩放回原始范围(乘以64)。注意,如果使用整数除法,这意味着只会出现4个颜色通道值:0,64,128和192,模仿2位颜色。“
我甚至没有到达我应该放置图片并从中加载的地方。基本上我需要它解释,就像我五岁。提前谢谢!
答案 0 :(得分:1)
Java API文档将是您最好的资源。
您可以通过ImageIO.read(File)函数读取BufferedImage。
BufferedImage是一个Image,因此您可以将它显示为JLabel或JButton的一部分。
可以使用不同的ColorModel,RGB,BGR,ARGB,每种颜色一个字节,索引颜色等创建BufferedImage。在这里,您要将一个BufferedImage复制到另一个Colormodel。
基本上你可以使用不同的ColorModel创建一个新的BufferedImage,调用:
Graphics g = otherImg.getGraphics();
g.drawImage(originalImg, ...);
ImageIO.write(otherImg, ...);