How do I take a screenshot using MATLAB?

99 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 11 Oct 2017
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?

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 30 Juin 2021
Modifié(e) : MathWorks Support Team le 30 Juin 2021
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 commentaire
Yair Altman
Yair Altman le 22 Oct 2017
Modifié(e) : MathWorks Support Team le 1 Juil 2022
export_fig: https://www.mathworks.com/matlabcentral/fileexchange/23629-export_fig

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Environment and Settings dans Help Center et File Exchange

Tags

Produits


Version

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by