MATLAB Answers

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

2 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)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!