Wrong pixel color when save figure as pdf using a different background color

11 views (last 30 days)
When I function imshow to display an image and change the default color, everything is okay. However, when I save the figure to pdf format, the color of white pixel is not correct.
set(groot, 'DefaultFigureColor', 'blue');
set(groot, 'DefaultFigureInvertHardcopy', 'off');
p = phantom();
figure(1)
imshow(p)
saveas(gcf, 'phantom.pdf');
This is the result of Figure 1.
This is the result in file 'phantom.pdf'.
  1 Comment
Philipp Heinirch
Philipp Heinirch on 9 Jul 2020
I don't know if this helps you, but try export_fig . it served me well so far when I wanted to export things to pdf.

Sign in to comment.

Accepted Answer

Sai Sri Pathuri
Sai Sri Pathuri on 15 Jul 2020
Edited: Sai Sri Pathuri on 16 Jul 2020
The cause is that renderer we use to print is switched to painters. You may use -opengl flag with print command
print(gcf, 'phantom', '-dpdf', '-opengl')
  1 Comment
Mango Feng
Mango Feng on 19 Jul 2020
Thanks for your answer! I found that an alternative method is changing the figure property 'Renderer' to 'opengl'.
set(groot, 'DefaultFigureColor', 'blue');
set(groot, 'DefaultFigureInvertHardcopy', 'off');
p = phantom();
figure('Renderer', 'opengl')
imshow(p)
saveas(gcf, 'phantom.pdf');

Sign in to comment.

More Answers (0)

Categories

Find more on Interactive Control and Callbacks 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!

Translated by