Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在屏幕上快速采集图像并读取像素_Java_Bufferedimage_Screen Capture_Getpixel_Awtrobot - Fatal编程技术网

Java 在屏幕上快速采集图像并读取像素

Java 在屏幕上快速采集图像并读取像素,java,bufferedimage,screen-capture,getpixel,awtrobot,Java,Bufferedimage,Screen Capture,Getpixel,Awtrobot,我试图在屏幕上获取一小部分图像,并读取任何像素以比较其他像素。获取屏幕图像的代码是: Rectangle captureSize = new Rectangle(x, y, height, width); BufferedImage image = robot.createScreenCapture(captureSize); 而且,要逐像素读取我使用的 for (int y = 0; y < image.getHeight(); y = y + 1) { for (

我试图在屏幕上获取一小部分图像,并读取任何像素以比较其他像素。获取屏幕图像的代码是:

Rectangle captureSize = new Rectangle(x, y, height, width);
BufferedImage image = robot.createScreenCapture(captureSize);
而且,要逐像素读取我使用的

  for (int y = 0; y < image.getHeight(); y = y + 1) {
        for (int x = 0; x < image.getWidth(); x = x + 1) {
            color = image.getRGB(x, y);
            // Some methods etc
        {
{
方法,因为我不知道它的效率有多高,重新排序代码会有点困难。因此,任何帮助都将不胜感激。

使用

rgbArray = image.getRGB(startX, startY, w, h, rgbArray,offset, scansize) ;

从数组中读取像素值要比调用方法来获取每个像素值快得多,而单次调用getRGB来获取数组也不慢。

我认为如果我使用
rgbArray=image.getRGB(startX,startY,w,h,rgbArray,offset,scansize)方法它将把所有图像数据转换成一个数组(1),我从一个数组(2)中读取它,这似乎是更广泛的工作,因为它有两种工作。因此,我不知道它是否快。编辑:我查看了它的工作原理,并意识到它使用了colorModel和光栅。因此它看起来更快:
colorModel.getRGB(graster.getDataElements(x,y,data))我尝试了
image.getRGB(startX,startY,w,h,rgbArray,offset,scansize)方法,但它也在370毫秒内完成工作。难道没有其他方法来搜索像素吗?对image.getRGB()的单个调用需要370毫秒?您在哪个平台上?这可能是alate,但请检查我的答案:
rgbArray = image.getRGB(startX, startY, w, h, rgbArray,offset, scansize) ;