我也没写过颜色识别的程序,不过给你点提示,光的三原色是红绿蓝,染料的三原色是品红,黄,青,所有我们可以看到的颜色都可以由三原色以不同比例混合而成,再加上色调,饱和度,亮度调节出来,你的程序可以把一种颜色拆成这些最基本的元素,每种元素占一个位置就可以了
10余年建站经验, 做网站、网站建设客户的见证与正确选择。创新互联公司提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。
和C++ CLR类似,我们使用标准的C++语言来实现同样的功能。注意到rand()这个函数是C++标准库里的内容,所以我们在文件开头增加了对stdlib.h这个头文件的引用。
这里需要注意的一点是:所有希望使用DllImport引入C#的C++方法都应该在方法声明中增加__declspec(dllexport)关键字,除非它在.def文件中对这些方法进行显示声明。
int rgbR;
int rgbG;
int rgbB;
int minx = 0;
int miny = 0;
try {
File file = new File("E:\\dd.png");
BufferedImage image = ImageIO.read(file);
int width = image.getWidth();//图片宽度
int height = image.getHeight();//图片高度
for (int i = minx; i width; i++) {
for (int j = miny; j height; j++) {
int pixel = image.getRGB(i, j); // 下面三行代码将一个数字转换为RGB数字
rgbR = (pixel 0xff0000) 16;
rgbG = (pixel 0xff00) 8;
rgbB = (pixel 0xff);
System.out.println("i=" + i + ",j=" + j + ":(" + rgbR + "," + rgbG + "," + rgbB + ")");
}
}
System.out.println("图片宽度为:"+width+",高度为:"+height);
} catch (IOException e) {
System.out.println("读取文件出错");
e.printStackTrace();
}