【发布时间】:2019-05-30 00:39:41
【问题描述】:
我正在从事一个涉及模式检测的项目。我必须将输入图像缩放到特定大小并测试像素颜色。
我尝试接收 java.awt.Image 以便调整它的大小,然后将其转换为 BufferedImage 以测试每个独立像素的 RGB 值。 但是,将 BufferedImage 转换为 Image 不起作用。
由于 java.awt.Image 无法访问每个像素的颜色值,我必须使用 BufferedImage 的 .getRBG 函数。但是,我必须接受 java.awt.Image 因为 BufferedImage 无法调整大小。我做了一些关于调整 BufferedImage 大小的研究,但我发现的所有结果都是关于在屏幕上调整它的大小,而不是实际图像。我不是试图在屏幕上显示 BufferedImage,而是试图访问图像上每个像素的颜色值。
这些是可以解决我的问题的方法: 请建议一种方法...
- 缩放 BufferedImage(不涉及在屏幕上绘图,只需调整 BufferedImage 本身的大小)
或
- 访问 java.awt.Image 中像素的颜色值
Image img = ImageIO.read(inputFile).getScaledInstance(400, 400, 0);
BufferedImage scaledImage = (BufferedImage)img;
以下代码无法编译,因为 BufferedImage 无法转换为 java.awt.Image
【问题讨论】: