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 vom GUI abspeichern

 

ms1080
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 04.10.2010, 08:37     Titel: screenshot vom GUI abspeichern
  Antworten mit Zitat      
hi

habe ein gui erstellt das ich nun als bild speicher möchte.

1. wie kann ich das gesamte gui als bild speicher?

2. wie speichere ich das dann an einem beliebigen ort unter windows.

habe es bis jetzt so versucht:

Code:

imwirte(GUI.fig, filename, 'jpeg');
fid = fopen (fullfile(filename));
 
fclose (fid);
 


und da komme ich nun nicht wirklich weiter. bitte um hilfe.

vielen dank
nitram
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: 04.10.2010, 08:56     Titel:
  Antworten mit Zitat      
Moin,

bisher ging das mit folgender Funktion:

http://www.mathworks.com/matlabcent.....exchange/?term=screensnap

Nach Umstelung auf 2010b erhalte ich jedoch Fehlermeldungen. Muß das mal untersuchen, woran das liegt.

Viele Grüße

Hubertus
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: 04.10.2010, 12:54     Titel: Re: screenshot vom GUI abspeichern
  Antworten mit Zitat      
Hallo Martin,

Zitat:
Code:

imwirte(GUI.fig, filename, 'jpeg');
fid = fopen (fullfile(filename));
fclose (fid);
 


Dann schau Dir doch zunächst mal die Dokumentation an:
help imwrite
help fullfile
ImWRITE nimmt ein Array entgegen, dass bereits das Bild enthält. Was ist aber "GUI.fig" ?
Siehe GETFRAME um ein Image-Array zu erhalten.

Was macht FULLFILE? Ich rate mal, dass dies Dir weiter hilft:
Code:
fullfile(cd, [filename, '.jpeg'])


Eine weitere Möglichkeit ist der PRINT-Befehl.

Das Lesen der Dokumentation mit den Befehlen HELP oder DOC ist jedenfalls immer anzuraten, wenn es Probleme gibt.

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: 04.10.2010, 15:41     Titel:
  Antworten mit Zitat      
@ hubertus

Hst du schon ne lösung gefunden, weil ich mit dem befehl screensnap nichts anfangen kann bzw mein matlab sich da weigert.

@ Jan S.

Code:

bild = getframe;
[jpegfile,path2jpeg] = uiputfile('Bild.jpeg','Speichern unter ');
fid = fopen(fullfile(path2jpeg, jpegfile));
     
fclose(fid);
 


hast schon recht, das es mit IMWRITE nicht so funktioniert wie es mir vorstellte.
wenn ich GETFRAME richtig verstehe, kann ich damit aber nur einen screenshot des aktuellen axes vornehmen. Ich will aber das gesamte GUI als Bild speichern. Von mir aus auch ein kompletter screenshot des ganzen Desktops.
hast du dafür auch eine Idee.

MfG nitram
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: 04.10.2010, 15:56     Titel:
  Antworten mit Zitat      
Den Fehler habe ich gefunden. Ich habe keinen Kompiler. In der Funktion Screensnap muß die Befehlszeile: mex .... ausgeführt werden. Vor meiner Umrüstung lief die Funktion einwandfrei. Vielleicht ist das für Dich kein Problem.
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: 06.10.2010, 22:37     Titel:
  Antworten mit Zitat      
Hallo Martin,

wie schon empfohlen, lies doch mal die Dokumentation von GETFRAME: "GETFRAME(H) gets a frame from object H, where H is a handle of a figure or an axis".

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: 23.11.2010, 17:19     Titel:
  Antworten mit Zitat      
hier die Lösung:

Code:

bild = getframe(gcf);
[jpegfile, path2jpeg] = uiputfile('Bild.jpeg','Speichern unter ');
FileName = fullfile(path2jpeg, jpegfile);
imwrite (bild.cdata, FileName, 'jpeg');
 
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.