0
A
回答
1
这是可能的。您可以使用ImageIO加载图像。
BufferedImage img = ImageIO.read(imageFile);
int rgb = img.getRGB(x,y);
Color color = new Color(rgb);
但仍然需要创建一个算法,找到x,y边界并检查每个位置的颜色。
1
ImageIO将允许您像其他人提到的那样加载图像。
优化是可能的,这将有助于很多情况:如果图像是灰度开始 - 如在文件格式中显示“这是灰度图像”,则可以使用img.getColorModel().getColorSpace()
来检测是否确定是否你有一个图像的颜色空间只包含灰色阴影。
对于索引调色板(例如GIF文件),您可以迭代颜色模型中的所有颜色,并快速确定是否有颜色(如果红色/绿色/蓝色值相同,则没有颜色)。
其余的,你将不得不从图像中采样像素(使用一些模式来走动图像,在位置之间跳过,所以你不会花大量时间在黑/白/灰色边界之前遇到彩色),并完成类似
Color c = new Color(img.getRGB(x,y));
boolean isGray = c.getRed() == c.getGreen() && c.getRed() == c.getBlue();
...
在一些图像的大小,它可能变得过于昂贵遍历图像的每个像素,如果连一个单一的彩色像素存在于检测,并可能要承担有一定的颜色并始终警告用户。
相关问题
- 1. Java图像操作库?
- 2. Ruby中的图像操作
- 3. Java:单元测试图像操作
- 4. 在Java中的图像,绘图和操作框架?
- 5. Ado.net图像操作
- 6. Java快速像素操作
- 7. 如何操作OpenCV 3.0.0-1.1中的Mat图像中的单个像素Java API
- 8. MPlot3D IPython中的图像操作
- 9. Python中的图像位操作
- 10. 操作ActionScript 3中的外部图像
- 11. 如何操作位图中的像素?
- 12. AS3中的图像操作库/框架
- 13. 在Java中的OrientDB并发图操作
- 14. 将图像操作应用于图像以制作新图像
- 15. 在java中以矩阵形式操作彩色图像
- 16. 图像移位操作
- 17. HTML5画布图像操作
- 18. 图像捕捉和操作
- 19. 图像操作概述
- 20. Python图像文件操作
- 21. 纯JavaScript图像操作
- 22. AForge.NET图像颜色操作
- 23. 图像字节流操作
- 24. 如何使用鼠标操作在SVG中操作图像?
- 25. 在操作栏中更改图像
- 26. 在C++中读取/操作图像
- 27. 用ImageIO打开图像后的Java文件操作
- 28. 画布图像像素操作优化
- 29. 位操作中的Java
- 30. 操作ArrayList中的值Java
绝对的黑色和白色?还是灰度? – Maroun
http://stackoverflow.com/questions/1604319/getting-pixel-data-from-an-image-using-java – lummycoder
http://stackoverflow.com/questions/3703624/how-to-determine-if-an -Image-java的AWT-图像是-BW与 - 无彩色 –