partridgejiang / Kekule.js

A Javascript cheminformatics toolkit.
http://partridgejiang.github.io/Kekule.js
MIT License
249 stars 61 forks source link

export cropped image #252

Closed lsdsjy closed 3 years ago

lsdsjy commented 3 years ago

In chemComposer, how can I export the current chem obj into an image cropped to its surrounding box? I tried exportToDataUri but it seems to export the whole canvas, which has plenty of blanks.

partridgejiang commented 3 years ago

A simple approach is to create a autosized viewer widget, load the objects inside composer to the viewer, then export image from the viewer:

// create a hidden autosized viewer widget
let viewer = new Kekule.ChemWidget.Viewer(document);
viewer.appendToElem(document.body);
viewer.getElement().style.visibility = 'hidden';
viewer.setAutoSize(true);
// load objects in viewer
viewer.setChemObj(composer.getChemObj());
// export image
let dataUri = viewer.exportToDataUri();
lsdsjy commented 3 years ago

@partridgejiang Thanks!