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

gui-fenster speichern

 

ms1080
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 02.12.09
Wohnort: ---
Version: R2009
     Beitrag Verfasst am: 10.11.2010, 08:47     Titel: gui-fenster speichern
  Antworten mit Zitat      
hi

ich würde gerne das gui fenster als bild speichern. soll heißen, ich wollte es so gestalten, dass ich einen button auf dem gui-programmfenster habe, der durch drücken mit der maus dann einen screenshot macht und den speichert.

kennt sich einer damit aus?

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: 10.11.2010, 20:36     Titel: Re: gui-fenster speichern
  Antworten mit Zitat      
Hallo Martin,

Siehe:
Code:
help getframe
help imwrite
% Oder
help print

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: 11.11.2010, 09:00     Titel:
  Antworten mit Zitat      
hi

ja das hatte ich dann auch schon gefunden, aber irgendwie komme ich da nicht weiter.

will das der zukünftige nutzer des programms das bild frei speicher kann, soweit bin ich jetzt, aber komme da irgendwie nicht weiter:

Code:

bild = getframe;
[jpegfile,path2jpeg] = uiputfile('Bild.jpeg','Speichern unter ');
fid = fopen(fullfile(path2jpeg, jpegfile));
     save
fclose(fid);
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: 11.11.2010, 09:55     Titel:
  Antworten mit Zitat      
funktioniert so ja nicht, daher verwende ich jetzt imwrite

Code:

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

aber irgendwas funktioniert da immernoch nicht, das bild wird nicht gespeichert.

mfg nitram
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: 11.11.2010, 10:15     Titel:
  Antworten mit Zitat      
Code:

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


so das bild wird erzeugt, aber es ist leer!

was mach ich jetzt noch falsch!
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: 11.11.2010, 12:28     Titel:
  Antworten mit Zitat      
Hallo ms1080,

Du erstellst einen File-Handler "fid", benutzt ihn aber gar nicht für die Ausgabe. Wenn ich "help imwrite" lese, ist ein File-Handler aber auch gar nicht erforderlich. Stattdessen speichert Dein IMWRITE das Bild unter dem Dateinamen, der in der Variablen "Bild" steht. Den scheinst Du an anderer Stelle in Deinem Programm erzeugt zu haben. So sollte es funktionieren:
Code:

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

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: 11.11.2010, 16:22     Titel:
  Antworten mit Zitat      
hi jan


Zitat:

Stattdessen speichert Dein IMWRITE das Bild unter dem Dateinamen, der in der Variablen "Bild" steht. Den scheinst Du an anderer Stelle in Deinem Programm erzeugt zu haben


jetzt speichert er wieder nichts, kein bild auch keine leere datei so wie vorher. verstehe das mit imwrite nicht.
mal jatzt so wie ich das dachte:

bild ist meine variable und wird durch getframe mit einem screenshot versehen.
anschließend speichere ich die variable bild als jepeg z. B. auf dem desktop ab, um sie anschließend ohne matlab mit paint zu öffnen!

mfg nitram
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:20     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');
 


MfG

Nitram
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 - 2025 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.