Official transparency support for figures (savefig does not preserve transparency)
Show older comments
It appears that savefig still does not support transparency in R2022a. Is there any alternate scheme or any plan to offficially support transparency and allow figures as generated to be truly saved?
4 Comments
Walter Roberson
on 11 Sep 2022
Are you sure you mean savefig? savefig creates a struct that refers to the figure object and then save() the struct to a fig file. A fig file is a mat file. So savefig should store an exact copy of the serializable portions of the graphic objects.
It would make more sense if you were talking about saveas()
Mei Zhan
on 11 Sep 2022
Walter Roberson
on 12 Sep 2022
I see what you mean.
The Color property is only expecting an RGB triplet, not an RGBA quadruplet .Refer the following document: https://www.mathworks.com/help/matlab/ref/plot.html#btzitot-Color.
The Line class do not support to store alpha values in its Color property even though it clearly processes them when given. You can always add in the alpha values again by manually setting the Color property of the cloned figure (f2.Children.Children.Color = [0 0 0 0.1]). Note that the Color property will have the value [0 0 0] after running that command, but the plot will be updated with the correct alpha value.
clear; close all;
x = linspace(0,2*pi);
y = sin(x);
% Original Figure
f1 = figure(1);
plot(x,y,'Color',[0 0 0 0.1],'LineStyle','-','Marker','.');
savefig( f1, 'test.fig')
f2 = openfig('test.fig');
f2.Children.Children.Color = [0 0 0 0.1];
If you have any follow-up question please feel free to reply back or contact our support team.
Answers (0)
Categories
Find more on Creating, Deleting, and Querying Graphics Objects 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!
