Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Export high quality figures? #57

Closed
HakamShams opened this issue Oct 2, 2019 · 9 comments
Closed

Export high quality figures? #57

HakamShams opened this issue Oct 2, 2019 · 9 comments

Comments

@HakamShams
Copy link

HakamShams commented Oct 2, 2019

Hallo,

How can I save high quality figures from the rendering window e.g. 300 dpi or more? When I save screenshot even with svg or eps, the quality is not good at all !

Thanks in advanced

Hakam Shams

@marcomusy
Copy link
Owner

Hi Hakam,
to my knowledge vtk cannot export to eps/svg, yet you can increase a lot the dpi using:

from vtkplotter import settings

settings.screeshotScale = 2 # integer factor

# ...

screenshot()

you can also increase the Plotter window size: e.g.

vp = Plotter(size=(1500,1500))

Hope this helps

@HakamShams
Copy link
Author

First thank you it works! but there is still something weird. When I increase the scale e.g. to 2 the screenshot seems to be a stitching from the original scale and the new one!

screenshot

@marcomusy
Copy link
Owner

this seems related to a bad behavior of the vtkWindowToImageFilter class on some systems...
by looking into the vtk documentation I've found something which is probably a better solution:

from vtkplotter import *

s = Sphere().wireframe()
plt = s.show(axes=1, bg='w', interactive=False) # return Plotter obj

import vtk
renderLarge = vtk.vtkRenderLargeImage()
renderLarge.SetInput(plt.renderer)
renderLarge.SetMagnification(3)
renderLarge.Update()

write(renderLarge.GetOutput(), 'screenshot.png')

interactive()

let me know if this works for you!

@HakamShams
Copy link
Author

this solution works for the original camera view, which is defined in (plt in the code).
what I do now, I move the mouse and get my camera view by pressing (key C), then rerun the code defining these parameters with your solution.

But it helps a lot now, thank so much

@s1291
Copy link

s1291 commented Apr 13, 2020

@marcomusy
Hello,
In VTK, I think, there is a class named vtkSVGExporter. In paraview it uses the gl2ps library to generate multiple vector format outputs (eps, pdf, svg, etc.).

Regards

@marcomusy
Copy link
Owner

Thanks @s1291 if i understand correctly this is only applicable to exporting vtkContext2D scenes..
Do you have more info on how gl2ps is used in paraview?

@s1291
Copy link

s1291 commented Apr 14, 2020

Unfortunately, right now, I don't know how it is used by Paraview.

@vigji
Copy link

vigji commented Oct 20, 2020

@marcomusy I would be very interested to know if anything comes out about exporting 3D scenes as vector images!

@marcomusy
Copy link
Owner

@vigji this very much depends on the upstream vtk, I'll let you know if anything happens on that front!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants