ketjson-to-img
v0.1.0
Published
Standalone ket-json to PNG/SVG renderer using indigo-ketcher
Downloads
15
Maintainers
Readme
ketjson-to-img
Convert Ket-JSON chemical structures to PNG or SVG images using indigo-ketcher WASM.
Features
- 🚀 Non-blocking rendering in Web Worker
- 🎨 Customizable rendering options (colors, sizes, styles)
- 📦 Self-contained (no Ketcher UI dependencies)
- 🌐 Browser-only (modern browsers with WebAssembly)
- 💪 TypeScript support
Installation
npm install ketjson-to-imgUsage
Basic PNG Rendering
import { renderKetToPng } from "ketjson-to-img";
const ketJson = '{"root":{"nodes":[...]}}';
const pngBase64 = await renderKetToPng(ketJson);
// Use in img tag
document.getElementById("molecule").src = pngBase64;With Custom Options
const png = await renderKetToPng(ketJson, {
backgroundColor: "#ffffff",
fontSize: 14,
bondLength: 32,
bondThickness: 1.2
});SVG Rendering
import { renderKetToSvg } from "ketjson-to-img";
const svgBase64 = await renderKetToSvg(ketJson, {
backgroundColor: "transparent"
});API
renderKetToPng(ketJson, options?)
Convert ket-json to PNG image.
Parameters:
ketJson(string): Ket format JSON stringoptions(object, optional):backgroundColor(string): Hex color or 'transparent'fontSize(number): Font size for atom labelsbondLength(number): Bond length in pixelsbondThickness(number): Bond line thickness
Returns: Promise<string> - Base64-encoded PNG data URI
renderKetToSvg(ketJson, options?)
Convert ket-json to SVG image. Same parameters as renderKetToPng but outputs SVG.
Browser Support
Modern browsers with WebAssembly:
- Chrome 57+
- Firefox 52+
- Safari 11+
- Edge 79+
How It Works
- Loads indigo-ketcher WASM library in a Web Worker
- WASM initializes on first render call (cached for subsequent calls)
- Calls
indigo.render()with your structure and options - Returns base64-encoded image
