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 einen Bereich geben welchen er nur Speichert

 

shnegg
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 15.02.11
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 18.02.2011, 10:31     Titel: GUI einen Bereich geben welchen er nur Speichert
  Antworten mit Zitat      
Guten morgen Smile

Ich habe da mal ein Problem.
In meiner Gui habe ich 2 axes die ich gerne speichern würde.
Beide zusammen auf einem Bild. (Wichtig, das die Striche die auf den Bildern vom User gezeichnet wurden, mit gespeichert werden)

Code:

pic = getframe(gcf);
[pngfile, path2png] = uiputfile('*.png','save as');
FileName = fullfile(path2png, pngfile);
imwrite (bild.cdata, FileName, 'png');
 


ich weiß das gcf meine komplette GUI speichert. Ich will aber meine "Buttens" nich auf dem Bild haben.

Gibt es die Möglichkeit, das ich meiner GUI sage welchen Bereich sie Speichern soll? Mit 'Position', [0, 0, 1, 1] hatte es nicht geklappt.
Und ich stehe gerade voll auf dem Schlauch Sad
Bitte um Hilfe

edit by denny: bitte Codeformatierung verwenden. Danke!
Private Nachricht senden Benutzer-Profile anzeigen


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 18.02.2011, 15:55     Titel:
  Antworten mit Zitat      
Hallo shnegg,

spontan würden mir 2 Möglichkeiten einfallen.
1. Du stellst bei allen Objekten die du nicht brauchst Visible auf off und nach dem export wieder auf on...
2. Du kopierst deine axes in eine neue figure (z.B. copyobj) und exportierst diese. Hierfür würde ich empfehlen die neue figure unsichtbar zu machen (also visible off). Anschließend löscht du die figure wieder. Der Vorteil hierbei ist, dass du bei der Neuerstellung einer figure noch alles was du brauchst hinzuzufügen (Überschriften, Tabellen, Infotexte, Logo, etc) kannst...

Ich hoffe, dass es dir weiterhilft...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
shnegg
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 15.02.11
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 20.02.2011, 21:40     Titel:
  Antworten mit Zitat      
Meine Lösung sieht nun wie folgt aus:

Code:

allAxesInFigure = findall(gcf,'type','axes');
f = figure('visible','off');
copyobj(allAxesInFigure,f);

[pngfile, path2png] = uiputfile('*.png','save as');
FileName = fullfile(path2png, pngfile);
saveas(f,FileName,'png');
close(f);
 




Mein Problem ist jetzt, das die figure die ich speicher zu "klein" ist. Und meine axes nicht komplett im Bild dargestellt werden.

Code:


f = figure('visible','on', 'Position', [0, 0, 1, 1]);
% zeigt auch nicht alles an
 



Gibt es eine Möglichkeit, mein figure zu vergrößern, damit beide axes "hineinpassen"?


Grüßerle
Shnegg
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 20.02.2011, 22:16     Titel:
  Antworten mit Zitat      
Hey,
hast du auch mal
Code:

allAxesInFigure = findall(gcf,'type','axes');
f = figure('units',get(gcf,'units'),'Position',get(gcf,'Position'),'visible','off');
copyobj(allAxesInFigure,f);
 

ausprobiert?

MfG Marco
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: 20.02.2011, 22:26     Titel:
  Antworten mit Zitat      
Hallo shnegg,

Mehr als die volle Bildschrimauflösung geht ja nicht. Wenn Du also die Figure nicht vergrößern kannst, verkleinere doch die AXES...

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
shnegg
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 15.02.11
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 21.02.2011, 10:32     Titel:
  Antworten mit Zitat      
Hallo Marco

ich habe es so probiert wie du geschrieben hast.
In meiner gespeicherten figure fehlt jedoch immer noch der obere Teil meiner axes Sad

Wenn ich mir jedoch die figure plotte, habe ich alle axes komplett im Bild.

Grüßerle
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 22.02.2011, 12:08     Titel:
  Antworten mit Zitat      
Hey,

irgendwie ist sowas immer schwierig mit einer Ferndiagnose. Ist das Parent deiner Axes vll nicht überall die figure, sondern vll ein uipanel oder so? Du kannst natürlich in deinem neu kreierten Fenster die Axesposition anpassen nachdem du diese kopiert hast um diese richtig zu platzieren. Zudem musst du aufpassen was für Units du bei den einzelnen Axes eingestellt hast (ich hoffe mal bei allen gleich).

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
shnegg
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 15.02.11
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 22.02.2011, 14:35     Titel:
  Antworten mit Zitat      
Ich habe es jetzt so gemacht, das ich eine figure erstelle in denen beide Axes vorhanden sing, und diese dann über den save button manuel speichere. So hat man auch die möglichkeit es in verschiedene Formate zu speichern.

Vielen dank für die Hilfe Smile

Grüßerle
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.