使用 DrJava - 如何加载和更改 jpeg?

发布于 2024-12-12 05:45:00 字数 489 浏览 0 评论 0原文

我是一个完全的编程初学者,我已经尝试解决这个问题有一段时间了,但我迷失了。这个问题有几个不同的版本,但我想在完成一个代码后我可以弄清楚剩下的问题,所以我只是解释一下这个问题。第一部分要求使用 DrJava 编写一个程序,该程序将显示图像,等待用户响应,然后将图像减少到每个颜色通道只有 4 个级别。它接着说:

“我们想要做的是将每个颜色通道从范围 0-255(8 位)减少到范围 0-3(2 位)。我们可以通过将颜色通道值除以来做到这一点64. 然而,由于我们的实际显示每个颜色通道仍然使用 1 个字节,因此值 0-3 看起来都非常像黑色(颜色强度非常低),为了使其看起来正确,我们需要将值缩放回原来的值。原始范围(乘以64)。请注意,如果使用整数除法,则意味着只会出现 4 个颜色通道值:0、64、128 和 192,模仿 2 位色板。”

我什至不知道应该把图片放在哪里并从中加载。基本上我需要像我五岁一样解释它。提前致谢!

I'm a complete beginner to programming and I've been trying to figure this out for a while but I'm lost. There's a few different versions of the question, but I think I can figure the rest out after I have one finished code, so I'm just going explain the one. The first part asks to write a program using DrJava that will display an image, wait for a user response, and then reduce the image to have only 4 levels per color channel. It goes on to say this:

"What we want to do is reduce each color channel from the range 0-255 (8 bits) to the range 0-3 (2 bits). We can do this by dividing the color channel value by 64. However, since our actual display still uses 1 byte per color channel, a values 0-3 will all look very much like black (very low color intensity). To make it look right, we need to scale the values back up to the original range (multiply by 64). Note that, if integer division is used, this means that only 4 color channel values will occur: 0, 64, 128 and 192, imitating a 2-bit color palate."

I don't even get where I'm supposed to put the picture and get it to load from. Basically I need it explained like I'm five. Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人间☆小暴躁 2024-12-19 05:45:00

Java API 文档将是您最好的资源。

您可以通过函数 ImageIO.read(File) 读取 BufferedImage。

BufferedImage 是一个图像,因此您可以将其显示为 JLabel 或 JButton 的一部分。

BufferedImage 可以使用不同的 ColorModel、RGB、BGR、ARGB、每种颜色一个字节、索引颜色等创建。在这里,您想要将一个 BufferedImage 复制到另一个具有另一个 Colormodel 的 BufferedImage。

基本上你可以使用不同的 ColorModel 创建一个新的 BufferedImage,调用:

Graphics g = otherImg.getGraphics();
g.drawImage(originalImg, ...);
ImageIO.write(otherImg, ...);

Java API documentation will be your best resource.

You can read an BufferedImage via a function ImageIO.read(File).

BufferedImage is an Image, so you can display it a part of a JLabel or JButton.

BufferedImage can be created with different ColorModels, RGB, BGR, ARGB, one byte per colour, indexed colours and so on. Here you want to copy one BufferedImage to another with another Colormodel.

Basically you can create a new BufferedImage with the differing ColorModel, call:

Graphics g = otherImg.getGraphics();
g.drawImage(originalImg, ...);
ImageIO.write(otherImg, ...);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文