How do I take a screenshot using MATLAB?
조회 수: 118 (최근 30일)
이전 댓글 표시
MathWorks Support Team
2017년 10월 11일
편집: MathWorks Support Team
2022년 7월 1일
Is there a way that I could use MATLAB the same way that I use software such as snipping tool or print screen? For example, I would like to run a code and save an image from a rectangular box on the screen. Is this possible?
채택된 답변
MathWorks Support Team
2021년 6월 30일
편집: MathWorks Support Team
2021년 6월 30일
This is possible to do in MATLAB by using Java libraries.
% Take screen capture
robot = java.awt.Robot();
pos = [0 0 400 400]; % [left top width height]
rect = java.awt.Rectangle(pos(1),pos(2),pos(3),pos(4));
cap = robot.createScreenCapture(rect);
% Convert to an RGB image
rgb = typecast(cap.getRGB(0,0,cap.getWidth,cap.getHeight,[],0,cap.getWidth),'uint8');
imgData = zeros(cap.getHeight,cap.getWidth,3,'uint8');
imgData(:,:,1) = reshape(rgb(3:4:end),cap.getWidth,[])';
imgData(:,:,2) = reshape(rgb(2:4:end),cap.getWidth,[])';
imgData(:,:,3) = reshape(rgb(1:4:end),cap.getWidth,[])';
% Show or save to file
imshow(imgData)
imwrite(imgData,'out.png')
Note: If you are looking to take a screenshot of a figure window, there are many other tools that are much better suited for this, for example the "print" and "getframe" functions, as well as several featured submissions to File Exchange such as "ScreenCapture" or "export_fig".
댓글 수: 1
Yair Altman
2017년 10월 22일
편집: MathWorks Support Team
2022년 7월 1일
ScreenCapture: https://www.mathworks.com/matlabcentral/fileexchange/24323-screencapture-screenshot-of-component-figure-or-screen
export_fig: https://www.mathworks.com/matlabcentral/fileexchange/23629-export_fig
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Environment and Settings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!