jpg - ¿Exportar la figura de Matlab como PNG?
save image matlab (5)
Basado en la respuesta de bdecaf:
set(gcf,''PaperUnits'',''inches'',''PaperSize'',[600/96,200/96],''PaperPosition'',[0 0 600/96 200/96])
print(''-dpng'',''-r96'',''test'')
96 es el dpi de mi sistema. Esto me da EXACTAMENTE el mismo resultado que la función de guardar. Para Windows, el dpi es típicamente 96, a veces 120. Simplemente ajústelo de acuerdo a su sistema. Tenga en cuenta que, en un proyector, el DPI puede ser diferente de su sistema, especialmente si su sistema tiene 120 DPI. 96 DPI debería ser, en general, una opción bastante segura para los proyectores, creo. Google si necesita ayuda para encontrar la configuración de DPI de su sistema. Esta respuesta es 99,9% basada en bdecaf y Florian, por lo que dejaré la respuesta de bdecaf seleccionada como la correcta.
editar: 600 = tamaño de imagen horizontal en px, 200 = tamaño de imagen vertical en px
Necesito exportar automáticamente las cifras de Matlab a PNG. Mi figura tiene un tamaño de 600x200 px:
hFig = figure(1);
set(hFig, ''Color'', [1 1 1]); % backgroundcolor white
set(hFig, ''Position'', [500 500 600 200]) % size 600x200
Lo intenté por ejemplo
print -dpng image.png
pero el image.png es más grande que 600x200 px. Exportar la figura manualmente desde la GUI de la ventana de Figura usando el botón "Guardar" funciona muy bien, quiero hacer esto automáticamente / desde un script. Gracias por cualquier pista!
Mi enfoque preferido para generar gráficos PNG de MATLAB es la utilidad export_fig
disponible en el intercambio de archivos de MATLAB .
Aquí hay un ejemplo:
set(gcf, ''Position'', [100 100 500 500], ''Color'', ''w'')
x=0:0.01:10;
plot(x, sin(x))
set(gca, ''FontSize'', 20, ''FontName'', ''Arial'')
export_fig ''strip-diff-far-forward.png'' -painters -nocrop
Esto creará un PNG de 500 x 500 píxeles, con fuentes de 20 píxeles. Estoy seguro de que internamente hace el mismo tipo de cosas que en la respuesta de bdecaf, pero ya está incluido en una función para usted, y tiene muchas otras características también.
El inconveniente es que si usa el renderizador -painters (que creo que se ve mejor), tendrá que tener instalado ghostscript. Si no quiere meterse con eso, puede cambiar -painters
a -opengl
¡Edita ahora, configurando el tamaño de la figura correctamente!
También sé que el problema que guardan las cifras nunca es el mismo que en la pantalla.
Existe el comando saveas
que podría funcionar para usted, pero también cambia algo de resolución para mí.
La única forma que conozco es establecer cuidadosamente cada aspecto de esta manera:
set(gcf,''PaperUnits'',''inches'',''PaperSize'',[2,6],''PaperPosition'',[0 0 2 6])
print(''-dpng'',''-r100'',''test'')
(por lo tanto, el tamaño del papel es de 2x6 "y la impresión con 100dpi, PaperPosition es importante ya que de lo contrario tendrá algún borde adicional).
Tratar:
set(hFig, ''PaperPositionMode'',''auto'') %# WYSIWYG
print -dpng -r0 image.png %# at screen resolution
Esto le dice que produzca una imagen del mismo tamaño que aparece en la pantalla.
La respuesta de Amro funciona perfectamente, después de generar su figura, configure PaperPositionMode
en auto
y el tamaño de impresión será el mismo que el tamaño de pantalla.
set(gcf, ''PaperPositionMode'',''auto'')
print(''-dpng'',''test.png'')