Generating Transparent PNG
Problem
You want to depict your molecule in a png
image with transparent
background for your presentation.
Ingredients
|
Difficulty Level
Solution
If you are rendering a molecule directly into an image file, all you have to do is to call the OERenderMolecule function with the clearbackground = False parameter. If this parameter is True (by default) then the OEWhite color is used to clear the image before rendering the molecule.
1def RenderMolecule(mol, opts, filename):
2
3 disp = oedepict.OE2DMolDisplay(mol, opts)
4 clearbackground = False
5 oedepict.OERenderMolecule(filename, disp, clearbackground)
Discussion
In the case where you are rendering a molecule into an OEImage object, this object has to be constructed with the OETransparentColor color.
1def RenderMoleculeToImage(mol, opts, filename):
2
3 image = oedepict.OEImage(opts.GetWidth(), opts.GetHeight(), oechem.OETransparentColor)
4
5 disp = oedepict.OE2DMolDisplay(mol, opts)
6 clearbackground = False
7 oedepict.OERenderMolecule(image, disp, clearbackground)
8
9 oedepict.OEWriteImage(filename, image)
Note
The OEDepict TK supports transparent background for png
, svg
and pdf
image files.
See also in OEDepict TK manual
Theory
Molecule Depiction chapter
Image file formats section
API
OEImage class
OE2DMolDisplayOptions class
OE2DMolDisplay class
OERenderMolecule function
OEWriteImage function