Copy figure - bad quality
이전 댓글 표시
Hi all,
I have some problem with the quality of copied figure. If I plot something and then I chose edit-copy figure, no problems, I can paste them in word and the quality is good. BUT if I do some modifications on the figure, for example I add some text or shapes, then if I do copy figure, the quality of the pasted image in word is lower.. For example it's impossible to read well the axis label.. You have any idea of the solution for this problem?
Thank you
답변 (8개)
Go to copy options and choose "Metafile" for clipboard format. The resolution is pefect, alghouth it said "may loose information" but i did not have that problem yet.
댓글 수: 5
Muhammad Zayed
2020년 8월 26일
The quality of the imported figure was greatly improved after I did that! Thanks much!
XIAOHUA HUA
2022년 4월 20일
Hum, really makes no sense to me.
3 options:
1, Metafile (may lose information)
2, Preserve information (metafile if possible)
3, Bitmap
To me, option 1 seems the worst choice in terms of picture quality but actually not at all.
Mario Rossi
2022년 4월 20일
Vincent Masabiar masabair
2024년 2월 10일
Thanks..........choosing "Metafile" for clipboard format worked for me!
Nick
2024년 11월 18일
It does not seem this is an option on Mac. Are there any alternatives for Mac?
Malcolm Lidierth
2012년 3월 22일
1 개 추천
댓글 수: 1
Image Analyst
2012년 3월 22일
Someone else just asked about saving and I referred him to the FAQ: http://matlab.wikia.com/wiki/FAQ#How_do_I_save_my_figure.2C_axes.2C_or_image.3F_I.27m_having_trouble_with_the_built_in_MATLAB_functions. (Make sure the final dot is included in the URL). The FAQ also which mentions export_fig(), which is the consistently the most downloaded File Exchange submission. I guess that's why questions on saving figures are the MOST commonly asked question - we get 1 to 3 a day or so.
Richard
2012년 3월 22일
try saving the figure from matlab as a .jpg file by typing
ff =(C:\My Documents);
fnout = [ff, '\FigureName', num2str(1,'%.2d'), '.jpg'];
print('-djpeg','-r150',fnout);
This will then save the figure in my documents. Then in word go to inser--> picture.
If you want really high quality figures, you should save your figures as .eps files, but I dont think that word accepts these.
댓글 수: 1
Richard
2012년 3월 23일
편집: Walter Roberson
2024년 11월 18일
Mario Rossi
2012년 3월 22일
0 개 추천
댓글 수: 1
Oliver Woodford
2012년 3월 25일
An example script would help a lot.
Malcolm Lidierth
2012년 3월 22일
This will not improve the image like export_fig but it does reproduce what's on screen -so if if you do not see grotty graphics on screen this may help.
It calls
this=MUtil.getFigureHWLWContainer(fh);
which is defined in Project Waterloo http://sourceforge.net/projects/waterloo/, and returns a reference to the MATLAB heavyweight/lightweight container but you could get that in other ways e.g. with Yair Altman's findjobj.
Dependent jars are part of the standard MATLAB distribution and are on the static javaclasspath.
MATLAB seem to build graphics in an offscreen buffer then paste a bitmap into the Java AWT Canvas. Here, that is replaced with an Apache Batik SVGCanvas. The MALAB graphics will be embedded as a bitmap in the file.
function SaveAsSVG(fh, str)
% SaveAsSVG saves a MATLAB figure to an SVG file
% Example:
% SaveAsSVG(figurehandle, filename)
% where filename is the fully qualified name of the file to write.
%----------------------------------------------------------------------
% Part of Project Waterloo and the sigTOOL Project at King's College
% London.
% Author: Malcolm Lidierth 03/11
% Copyright © The Author & King's College London 2011-
% Email: sigtool (at) kcl.ac.uk
% ---------------------------------------------------------------------
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.batik.dom.GenericDOMImplementation;
import org.apache.batik.svggen.SVGGeneratorContext;
import org.apache.batik.svggen.SVGGraphics2D;
import org.apache.batik.svggen.SVGGraphics2DIOException;
import org.w3c.dom.DOMImplementation;
this=MUtil.getFigureHWLWContainer(fh);
if nargin<2 || isempty(str)
str='untitled.svg';
end
[folder filename ext]=fileparts(str);
if isempty(ext);ext='.svg';end
if isempty(folder);folder=pwd();end
str=[fullfile(folder, filename), ext];
thisFile = File(str);
OutputStream = [];
try
OutputStream =FileOutputStream(thisFile);
catch ex
end
domImpl = GenericDOMImplementation.getDOMImplementation();
svgNS = 'http://www.w3.org/2000/svg';
document = domImpl.createDocument(svgNS, 'svg', []);
svgGenerator = SVGGraphics2D(document);
svgGenerator.scale(1,1);
this.paint(svgGenerator);
try
out = OutputStreamWriter(OutputStream, 'UTF-8');
catch ex
end
try
svgGenerator.stream(out, true);
catch ex
end
end
John Petersen
2012년 7월 27일
0 개 추천
Save it as a .emf or .png file. These retain image quality for graphs and plots with lines.
Albert Yam
2012년 7월 27일
This might just be copy/paste but, try
print -s -dmeta
카테고리
도움말 센터 및 File Exchange에서 Environment and Settings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!