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

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 commentaire

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.

Connectez-vous pour commenter.

 Réponse acceptée

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 commentaire

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');

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating, Deleting, and Querying Graphics Objects dans Centre d'aide et File Exchange

Produits

Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by