WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Screenshot als Bild speichern

 

ms1080
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 23.11.2010, 16:21     Titel: Screenshot als Bild speichern
  Antworten mit Zitat      
Hi

ich hatte schonmal das Problem hier angefragt, aber leider dann keine antwort mehr bekommen.

Folgendes Problem habe ich:
Ich will das von mir geschriebene GUI nachdem ausführen der beinhalteten Funktionen per screenshot als Bild speichern. Folgenden code habe ich bis jetzt verwendet:

Code:

bild = getframe;
[jpegfile, path2jpeg] = uiputfile('Bild.jpeg','Speichern unter ');
FileName = fullfile(path2jpeg, jpegfile);
imwrite (bild, FileName, 'jpg');
 


das Problem ist, dass ich kein Bild erhalte.
Es kommt folgende Fehlermeldung:

??? Error using ==> imwrite>validateSizes at 596
Unsupported image datatype 'struct'.

Error in ==> imwrite at 422
validateSizes(data);

Hat einer einen Vorschlag?

MfG

Nitram
Private Nachricht senden Benutzer-Profile anzeigen


MatLabNooB
Forum-Guru

Forum-Guru


Beiträge: 262
Anmeldedatum: 27.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2010, 16:29     Titel:
  Antworten mit Zitat      
das liegt daran denk ich, dass getframe ein struct anlegt, indem das Bild und die zugehörige colormap gespeichert werden, das bild solltest du dann so exportieren:
Code:
imwrite (bild.cdata, FileName, 'jpg');


gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 23.11.2010, 16:43     Titel:
  Antworten mit Zitat      
Moin,

ich verstehe Deinen Einwand nicht, Du hättest keine Antworten bekommen.
Unter:
http://www.gomatlab.de/screenshot-v.....highlight,screenshot.html
hast Du doch mehrere Antworten erhalten. Die genannte Funktion läuft einwandfrei. Den Fehler habe ich gefunden und Dir mitgeteilt.

Viele Grüße - und munter bleiben!

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
ms1080
Themenstarter

Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 23.11.2010, 16:45     Titel:
  Antworten mit Zitat      
hi MatLabNooB

danke für die Hilfe, so wird das bild wirklich gespeichert, aber leider kein screenshot vom ganzen Bildschirm, so wollte ich es eigentlich haben.
Hmmm, hast da auch eine Idee, so wie es jetzt ist, speichere ich immer nur das 1. von 3 Diagrammen meines GUI´s. Will aber das komplette Fenster speichern, im Anhang findest du ein Bild des GUI, das ich über paint erzeugt habe, den umweg (Screenshot mit print machen, in paint einfügen und speichern)will ich aber nicht mehr haben.

MfG

Nitram

ProgrammfensterIII.png
 Beschreibung:

Download
 Dateiname:  ProgrammfensterIII.png
 Dateigröße:  50.62 KB
 Heruntergeladen:  806 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.11.2010, 16:48     Titel:
  Antworten mit Zitat      
Hallo

Biespiel aus der Hilfe zu FRAME2IM:
Code:

peaks                      % Make figure
f = getframe;              % Capture screen shot
[im,map] = frame2im(f);    % Return associated image data
if isempty(map)            % Truecolor system
  rgb = im;
else                       % Indexed system
  rgb = ind2rgb(im,map);   % Convert image data
end
 


Zuletzt bearbeitet von denny am 24.11.2010, 18:03, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.11.2010, 16:50     Titel:
  Antworten mit Zitat      
ms1080 hat Folgendes geschrieben:
hi MatLabNooB

danke für die Hilfe, so wird das bild wirklich gespeichert, aber leider kein screenshot vom ganzen Bildschirm, so wollte ich es eigentlich haben.
Hmmm, hast da auch eine Idee, so wie es jetzt ist, speichere ich immer nur das 1. von 3 Diagrammen meines GUI´s. Will aber das komplette Fenster speichern, im Anhang findest du ein Bild des GUI, das ich über paint erzeugt habe, den umweg (Screenshot mit print machen, in paint einfügen und speichern)will ich aber nicht mehr haben.

MfG

Nitram


Schaue dir CLIPBOARD oder CLIPBOARDIMAGE
Private Nachricht senden Benutzer-Profile anzeigen
 
MatLabNooB
Forum-Guru

Forum-Guru


Beiträge: 262
Anmeldedatum: 27.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2010, 17:05     Titel:
  Antworten mit Zitat      
musst dann noch dein figurehandle angeben, zB:
Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
ms1080
Themenstarter

Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 23.11.2010, 17:17     Titel:
  Antworten mit Zitat      
Vielen Dank MatLabNooB!

Genau so habe ich es mir vorgestellt, lag also nur an zwei Keinigkeiten!

Hier jetzt meine erprobte Lösung, für alle die es später nochmal gebrauchen können.

Code:

bild = getframe(gcf);
[jpegfile, path2jpeg] = uiputfile('Bild.jpeg','Speichern unter ');
FileName = fullfile(path2jpeg, jpegfile);
imwrite (bild.cdata, FileName, 'jpeg');
 
Code:


Vielen lieben Dank an alle die mir geholfen haben.

MfG

Nitram
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.11.2010, 00:52     Titel:
  Antworten mit Zitat      
Hallo ms1080,

Zitat:
danke für die Hilfe, so wird das bild wirklich gespeichert, aber leider kein screenshot vom ganzen Bildschirm, so wollte ich es eigentlich haben.

Yair's ScreenCapture nimmt Dir den ganzen Bildschirm auf:
ScreenCapture
Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
ms1080
Themenstarter

Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 24.11.2010, 08:05     Titel:
  Antworten mit Zitat      
danke jan, so wie ich es jetzt habe ist es schon okay, da so nur mein programmfenster als bild gespeichert wird, trotzdem nochmals danke!

MfG

Nitram
Private Nachricht senden Benutzer-Profile anzeigen
 
Tiuya
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 03.06.14
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 08.11.2014, 16:37     Titel:
  Antworten mit Zitat      
Hallo,

ich habe da ein Problem mit:
Habe das genau so gemacht, also

Code:

bild = getframe(gcf);
[jpegfile, path2jpeg] = uiputfile('Bild.jpeg','Speichern unter ');
FileName = fullfile(path2jpeg, jpegfile);
imwrite (bild.cdata, FileName, 'jpg');
 


Aber da wird meine GUI jetzt so abgespeichert, dass nur der graue Hintergrund und 2 figures angezeigt werden (siehe Anhang). Die ganzen schwarzen Flächen sind aber eigentlich irgendwelche Objekte auf meiner GUI, also Textfenster, Checkboxen usw., kann mir jemand sagen, warum die nicht angezeigt werden?

Viele Grüße,
Lena

Bild.jpeg
 Beschreibung:

Download
 Dateiname:  Bild.jpeg
 Dateigröße:  47.56 KB
 Heruntergeladen:  543 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.11.2014, 00:42     Titel:
  Antworten mit Zitat      
Hallo Tiuya,

Eigentlioch sollte ein DRAWNOW vor GETFRAME das lösen, manchmal wirde aber Dank der Java-Implementierung der UICONTROLs ein "pause(0.02)" benötigt. Hilft das bei Dir auch?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Tiuya
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 03.06.14
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 10.11.2014, 11:09     Titel:
  Antworten mit Zitat      
Huhu,

nee hilft leider beides nicht :/

Trotzdem Danke,
Lena
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.