Axes box incompletely copied to clipboard

9 vues (au cours des 30 derniers jours)
Matt J
Matt J le 1 Sep 2022
Déplacé(e) : Matt J le 23 Mar 2023
I am trying to put a red box around an image, like the following, and then copy/paste into a PowerPoint file.
imagesc(ones);hax=gca;
set(hax.XAxis,'Color','r','LineWidth',8)
set(hax.YAxis,'Color','r','LineWidth',8);
xticks([]);
yticks([]);
When rendered in a Matlab figure window, it looks fine. However, when I copy it to PowerPoint using,
copygraphics(gcf, 'BackgroundColor', 'none', 'ContentType', 'vector');
or just the Copy Figure option from the figure Edit menu, the copied figure has a small chunk missing from the upper-left corner. Is there a remedy for this?
  2 commentaires
Matt J
Matt J le 2 Sep 2022
Déplacé(e) : Matt J le 23 Mar 2023
export_fig from the File Exchange seems to be able to copy the figure gracefully to the clipboard.
imagesc(ones);hax=gca;
set(hax.XAxis,'Color','r','LineWidth',6)
set(hax.YAxis,'Color','r','LineWidth',6);
xticks([]);
yticks([]);
axis image
export_fig(hax,'-transparent','-clipboard')
Matt J
Matt J le 2 Sep 2022
Déplacé(e) : Matt J le 23 Mar 2023
Unfortunately, figure transparency is not preserved with the -clipboard switch :-(

Connectez-vous pour commenter.

Réponse acceptée

Yair Altman
Yair Altman le 4 Déc 2022
Déplacé(e) : Matt J le 23 Mar 2023
@Matt J export_fig(gcf,'-transparent','-clipboard') v3.28 now supports figure transparency for image fomats as well as EMF (where transparency was already supported in previous releases).
Please report export_fig issues on GitHub from now on, not in a FEX or Answers comment - I nearly missed this and only saw it by chance.
  1 commentaire
Matt J
Matt J le 4 Déc 2022
Déplacé(e) : Matt J le 23 Mar 2023
Great news, Yair!

Connectez-vous pour commenter.

Plus de réponses (1)

Kevin Holly
Kevin Holly le 2 Sep 2022
Déplacé(e) : Matt J le 2 Sep 2022
Have you tried getframe?
h = getframe(hax)
Image = h.CData;
You can save the Image to PowerPoint as shown below (Note, you will need to adjust the placement and size of the image within the PowerPoint):
%% Open PowerPoint as a COM Automation server
h = actxserver('PowerPoint.Application')
uiwait(msgbox('Select folder to save PowerPoint'))
folder = uigetdir;
% Show the PowerPoint window
h.Visible = 1;
h.Help
%% ADD PRESENTATION
% View the methods that can be invoked
h.Presentation.invoke
% Add a presentation via "Add" method
Presentation = h.Presentation.Add
%% ADD SLIDES
% View the methods that can be invoked
Presentation.Slides.invoke
% Add a slide via "Add" method
% IF USING OFFICE 2003, use these commands:
% % Slide1 = Presentation.Slides.Add(1,'ppLayoutBlank')
% % Slide2 = Presentation.Slides.Add(2,'ppLayoutBlank')
% IF USING OFFICE 2007, use these commands:
blankSlide = Presentation.SlideMaster.CustomLayouts.Item(1);
Slide1 = Presentation.Slides.AddSlide(1,blankSlide);
Slide2 = Presentation.Slides.AddSlide(1,blankSlide);
%% GENERATE MATLAB IMAGES
figure;
image(Image)
print('-dpng','-r150',fullfile(folder,'test1.png'))
%% ADD IMAGES TO SLIDES WITH TITLES
% Note: Change the image file full path names to where you save them
Image1 = Slide1.Shapes.AddPicture(fullfile(folder,'test1.png'),'msoFalse','msoTrue',100,20,200,500)
Title1 = Slide1.Shapes.AddTextbox('msoTextOrientationHorizontal',200,10,200,70)
Title1.TextFrame.TextRange.Text = 'Image 1'
%% SAVE PRESENTATION
% Note: Change the presentation full path name to where you save it
Presentation.SaveAs(fullfile(folder,'ExamplePresentation.ppt'))
%% Close PowerPoint as a COM Automation server
h.Quit;
h.delete;
  1 commentaire
Matt J
Matt J le 2 Sep 2022
Modifié(e) : Matt J le 2 Sep 2022
Thanks Kevin,
That does indeed get rid of the artifact in the upper-left corner (and is also a nice illustration of the fancy things you can do with automatic PowerPoint generation). However, I would ideally like to have a solution that sends the image to the clipboard, so that it can be pasted into other environments as well.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Printing and Saving dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by