Enregistrer un terrain à un fichier JPEG dans Matlab
J'ai conçu ces GUI dans lequel il y a un des axes. Je veux enregistrer le graphique établi à l'intérieur d'un fichier jpeg. Toutefois, le fichier obtenu est une image de l'ensemble de la figure de la fenêtre. C'est mon code:
X = 0:pi/100:2*pi;
Y = sin(X);
fh = figure;
Pan1 = uipanel(fh,'Units','normalized','Position',[0 0 0.5 1],'title',...
'Panel1');
Pan2 = uipanel(fh,'Units','normalized','Position',[0.5 0 0.5 1],'title',...
'Panel2');
haxes = axes('Parent',Pan2,'Units', 'normalized','Position',...
[0.25 0.25 0.5 0.5]);
hplot = plot(haxes,X,Y);
xlabel(haxes,'Time (second)');
ylabel(haxes,'Amplitude (meter)');
title(haxes,'Sine function');
FileName = uiputfile('*.jpg','Save as');
saveas(hplot,FileName);
- Pas liés à votre question, mais pourquoi format jpg pour une parcelle de terrain? Qui serait introduire des artefacts.
- Je pense que le meilleur format pour une image jpeg. Dites-moi si je me trompe.
- J'utilise .le format png pour tous mes MATLAB parcelles je veux enregistrer comme images. Ils sortent beaucoup plus propre que .jpg. Cette article, explique: "PNG fonctionne le mieux pour le type de vecteur graphiques avec des lignes dures."
- Je vous remercie pour votre commentaire et le lien fourni.
- Peut-être "Enregistrer une intrigue secondaire à un fichier JPEG dans Matlab." serait un meilleur titre?
Vous devez vous connecter pour publier un commentaire.
saveas
enregistre uniquement des chiffres, pas de parcelles individuelles.Si vous avez une intrigue secondaire, ou une parcelle dans un uicontrol comme vous avez, vous pouvez créer une copie temporaire de l'intrigue, l'enregistrer, puis supprimer la copie temporaire:
Si vous ne voulez pas la copie temporaire à clignoter sur l'écran lors de la copie de l'étape, vous pouvez utiliser le
'Position'
propriété de la figure de créer hors de l'écran.Espère que ça aide!
@Sam réponse est sur place, je veux juste ajouter que Matlab est assez intelligent pour savoir quel type de fichier que vous souhaitez enregistrer en inspectant le
FileName
variable de chaîne. Si vous définissezFileName
à quelque chose qui se termine dans.jpg
, vous pouvez enregistrer un fichier jpeg. Découvrez laenregistre
docs pour voir tous les autres types de fichiers.Lors de l'utilisation de la saveas fonction pour créer jpeg, la résolution est différente que lors de la sauvegarde manuelle de la figure avec le Fichier-->Enregistrer sous..., Il est plus recommandé d'utiliser hgexport au lieu de cela, comme suit:
Cela va faire exactement comme la sauvegarde manuelle de la figure.
source:
http://www.mathworks.com/support/solutions/en/data/1-1PT49C/index.html?product=SL&solution=1-1PT49C
C'est ma solution basée sur Sam Roberts et eykanal's réponse: