Both conversions start from the same DWG file, but they serve completely different purposes. An image is for display. JSON is for processing. Knowing which output you need — and when you need both — determines what kind of tool your product should call.
DWG to image renders the drawing geometry onto a raster canvas and saves the result as a PNG, JPEG, or TIFF. The output is a flat grid of colored pixels. It is useful for displaying a thumbnail, embedding a preview in a PDF report, or giving a non-CAD user a visual reference. It is not useful for any downstream software processing.
DWG to JSON reads the binary DWG format and emits a structured description of every entity in the drawing: its type, coordinates in native drawing units, layer membership, color, and bounding box. The output is machine-readable data your code can query, filter, measure, and transform.
| Capability | DWG to Image | DWG to JSON (CADLens) |
|---|---|---|
| Output format | PNG / JPEG / TIFF | JSON (vectorJson, layersJson, metadata) |
| Drawing units preserved | No — pixels only | Yes — native units per entity |
| Measurements | Not recoverable | Available on every entity |
| Layer information | Lost on render | layersJson: name, colorHex, entityCount |
| Entity filtering | Not possible | Filter by layer, type, color in code |
| Automation | Display only | Full — parse, measure, classify, export |
| Search / indexing | Not possible | Index entity text, count by layer, etc. |
| Preview image | Yes | Yes — imageUrl returned alongside JSON |
An image conversion is a one-way street. The moment the DWG is rendered to pixels, the structural information in the file is gone:
The CADLens vectorJson opens up a category of features that are simply not possible from an image:
The metadata object adds drawing-level context: units (millimetres, inches, etc.) and the overall bounding box ({ width, height }) so downstream code knows the coordinate space.
CADLens is a parser, but it also renders a PNG from the same parse run. You do not have to choose. A single POST /v1/parse call returns a job_id. When the job reaches COMPLETED, the result from GET /v1/jobs/{job_id}/result includes:
vectorJson — every entity with coordinates, layer, color, and bounding box.layersJson — layer names, colorHex, and entityCount.metadata — units and drawing extents.imageUrl — a signed URL to the rendered PNG preview, ready to display.Display the PNG in your UI and process the JSON in your backend — from one API call, with no separate rendering step and no additional infrastructure.
Free tier includes 50 parse requests per month. No credit card required.