Open 213cy opened 4 years ago
robot = java.awt.Robot; %% a = get(0,'ScreenSize'); w = 1.25*a(3); h = 1.25*a(4); % JavaRectangle = javaObject('java.awt.Rectangle',w,h); jImage = robot.createScreenCapture(java.awt.Rectangle(w,h)); %% tic % aa = typecast( swapbytes( jImage.getRGB(0,0,w, h,[],0,w)) ,'uint8'); % methodsview sun.awt.image.IntegerInterleavedRaster aa = typecast( swapbytes( jImage.getData.getDataStorage ), 'uint8'); bb = reshape(aa,4,w,h); cc = permute(bb(2:4,:,:),[3 2 1]); toc %imshow(cc) %% % jImage.getData.getDataElements(0,0,[]) tic % 太慢 太慢 太慢 太慢 Im = zeros(h/2,w/2,3,'uint8'); %iRaster = jImage.getData; for n=1:w/2 for m=1:h/2 temp = jImage.getRGB(2*n-1,2*m-1); %temp = iRaster.getDataElements(2*n-1,2*m-1,[]); aa = cast(temp,'int32'); a = typecast(aa,'uint8'); % a = typecast(swapbytes(aa),'uint8'); Im(m,n,:) = a([3,2,1]); end end toc %imshow(Im) %% return %% % % void keyPress(int keycode) 按下给定的键。 % % void keyRelease(int keycode) 释放给定的键。 % % void mouseMove(int x, int y) 将鼠标指针移动到给定屏幕坐标。 % % void mousePress(int buttons) 按下一个或多个鼠标按钮。 % % void mouseRelease(int buttons) 释放一个或多个鼠标按钮。 % % void mouseWheel(int wheelAmt) 在配有滚轮的鼠标上旋转滚轮。 %% % pause(3) robot.mouseMove(300,760); %移动鼠标到指定位置 % robot.mousePress (java.awt.event.InputEvent.BUTTON1_DOWN_MASK);%鼠标左键按 % robot.mouseRelease(java.awt.event.InputEvent.BUTTON1_DOWN_MASK);%鼠标左键放 robot.mousePress (1024);%鼠标左键按 robot.mouseRelease(1024);%鼠标左键放 pause(1) robot.mouseMove(450,760); %移动鼠标到指定位置 robot.mousePress (1024);%鼠标左键按 robot.mouseRelease(1024);%鼠标左键放 % % % java.awt.event.KeyEvent.VK_F10 % java.awt.event.KeyEvent.VK_E pause(1) robot.keyPress (121) robot.keyRelease(121) robot.keyPress (70) robot.keyRelease(70)