"Ross Anderson" wrote: > I'm trying to add an alphadata property to some data and save a vector-based (as opposed to bitmap) image. I can't find any way to do it at the moment, but I supposed that someone has by now found a way around this matlab flaw, so I thought I'd ask. I read elsewhere that plot2svg was a workaround, but it's not working for me for images. An example: > > p = peaks(20); > r =rand(20); > h = imagesc(p); > set(h,'alphadata', r); > > plot2svg('testtransparency.svg'); %claims to offer vector-based transparency, doesn't work here > export_fig('testtransparency.pdf'); %nope > print -painters -depsc2 testtransparency.eps %transparency not supported > export_fig('testtransparency.png'); %not vector-based
I don't know of any readily available function that can do this. But there are two potential workarounds that I can see. 1) Save as a png with transparency using export_fig and the -transparent option, then embed this bitmap in a pdf/eps using some other software, or simply writing out the eps file from within MATLAB. E.g. Save as png using export_fig; write out eps with image embedded in it; convert eps to pdf using eps2pdf (which comes with export_fig). 2) If you don't need the resulting pdf to be transparent itself, then you can avoid using the alphadata property of the image by compositing the transparency programmatically, e.g. as mentioned here: http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/244977#629720 Then all the normal pdf export methods should work fine.