Transparent figures from 2014b are not transparent when pasted to outside programs
2 views (last 30 days)
Show older comments
Recently started using 2014b and
set(gca, 'color', 'none')
does not seem to work in 2014b. I created a figure, opened it in both of my versions on this machine and 2013a produces transparent axes while 2014b does not.
What I mean by transparent is that when I Copy Figure from the figure Edit menu and paste the figure somewhere else (tried a few places to paste but Power Point is where I need it to go) that the pasted image will have no background, will let whatever else is below it show through. (When I copy, ctrl^C, from one figure to another the pasted axes are transparent but that is not all I need. I need to paste to other programs.)
I have set the "Figure background color preference" in Preferences/Figure copy Template/Copy Options/ to be "Transparent background". Also the Clipboard format setting is set to save as "Preserve information (metafile if possible)".
All of the settings that I am using are the same as I've used in all previous version of MatLAB.
Is there something that someone knows of that I am missing? Is this worthy of a bug report that I should be sending to technical support as some have suggested?
Thanks, Cal
2 Comments
Timothy Gorman
on 4 Jun 2015
I am having the exact same problem with 2014b and haven't been able to figure anything out so it is not just you, I think.
Accepted Answer
Vittorio
on 3 Dec 2015
Atfer contacting MathWorks support, I was told that this is a known bug in 2014b. The problem has been fixed in 2015a. If you cannot upgrade to a newer release, this is a workaround:
fig = figure();
line;
set(gca,'Color',[0 1 0]);
% save the original background color for later use
background = get(gcf, 'color');
% specify transparent background
set(gcf,'color',[0.8 0.8 0.8]);
% create output file
set(gcf,'InvertHardCopy','off');
print('-dpng', 'notTransparent.png');
% read image data back in
cdata = imread('notTransparent.png');
% write it back out - setting transparency info
imwrite(cdata, 'transparent.png', 'png', 'BitDepth', 16, 'transparency', [0.8 0.8 0.8])%background)
Hope this helps
0 Comments
More Answers (2)
kclamb
on 2 Dec 2015
Edited: kclamb
on 2 Dec 2015
My plot transparency seems to paste to word when I edit>Copy Figure. Below is how I edited the transparency of the plot.
myplot = plot(data);
myplot.Color=[myplot.Color, transparency]; %transparency between 0 and 1.
Maybe ctrl-alt-printscreen would be an acceptable alternative?
0 Comments
Jose Sosa Lopez
on 8 Jul 2020
if yor graph is in figure 1, you can put:
figure (1)
set(gcf, 'color', 'none');
set(gca, 'color', 'none');
0 Comments
See Also
Categories
Find more on Specifying Target for Graphics Output in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!