How to Convert an Image to STL (PNG, JPG or Photo) for 3D Printing
What image-to-STL conversion can and cannot do, the difference between a relief and a lithophane, and the settings that decide whether the print is readable. Free browser converter, nothing uploaded.
You have a PNG, a JPG or a photo, and you want to print it. The good news is that this works and it is easy. The important part — the part most guides skip — is understanding what you are actually going to get, because the answer determines every setting afterwards.
What conversion can and cannot do
A photograph contains no depth information. Nothing can look at a picture of a vase and produce a printable vase, and any tool implying otherwise is either using AI to invent a shape or misleading you.
What a converter genuinely does is treat brightness as height. Each pixel’s brightness becomes a thickness, and the result is a surface — a flat-backed panel with the image raised on its face. That is called a heightmap, and it is what every image-to-STL tool produces regardless of what it calls itself.
This covers most of what people actually want:
- Name plaques and door signs
- Coasters and keychains
- Logo panels and business signage
- Wall art, pet portraits, photo tiles
- Lithophane lamps and night lights
It does not cover producing a printable copy of an object from a photo of it. That needs photogrammetry — dozens of photos from different angles — or modelling it yourself.
The two kinds of output
This is the decision that matters, and mixing them up is why a lot of first attempts fail.
| Relief | Lithophane | |
|---|---|---|
| Viewed | From the front, normal light | With a light directly behind it |
| Read by | Shadow and shape | How much light gets through |
| Bright pixels are | Raised | Thin |
| Typical geometry | 1.5 mm base + 2.5 mm relief | 0.8–3.0 mm total, no base |
| Print orientation | Flat, face up | Vertical, on its edge |
| Best for | Plaques, coasters, signs, logos | Photo frames, lamps, night lights |
| On a shelf it looks | Like the image | Like a blank white tile |
A relief is a physical shape you read by its shadows, like a coin. A lithophane is a translucent panel you read by transmitted light. They need genuinely different thickness maths — the lithophane case is exponential rather than linear — which is why they are worth treating as two modes rather than one slider.
Our image to STL converter does both, and switches the preview with the mode: relief mode shades the surface as it would look on a shelf, lithophane mode simulates it lit from behind.
Step by step
1. Prepare the image first. This has more effect on the result than any setting in any converter.
- Crop tight to the subject. Background eats height range you need for the face.
- Push the contrast up. The print has less tonal range than your screen does.
- Remove or flatten a busy background if you can.
- Convert to greyscale mentally: colour is discarded, so a red shirt and a green wall of the same brightness become the same height. If two things in your image only differ by colour, they will merge.
2. Pick the mode. Front-lit and physical, or backlit and translucent. See the table above.
3. Set the size. 100–150 mm wide is the useful range. Below about 80 mm the detail has nowhere to go; above 200 mm the print times get long and the file gets big.
4. Set the detail. This is how finely the image is sampled onto the mesh, in millimetres per sample. 0.25–0.30 mm is the sweet spot for a 0.4 mm nozzle. Going finer adds triangles without adding printable detail, because the printer cannot resolve features smaller than roughly two nozzle widths.
5. Set the depth. For relief: 1.5 mm base, 4 mm peak. For lithophane: 0.8 mm minimum, 3.0 mm maximum.
6. Check the preview, then export. Look for detail that has gone flat and gradients that have banded before you commit hours to it.
File size and triangle count
Heightmap meshes get large fast, because the triangle count scales with the square of the detail setting.
| Panel | Detail | Triangles | STL size |
|---|---|---|---|
| 100 mm | 0.40 mm | ~93,000 | 4.4 MB |
| 100 mm | 0.30 mm | ~164,000 | 7.8 MB |
| 100 mm | 0.20 mm | ~368,000 | 17.6 MB |
| 150 mm | 0.20 mm | ~827,000 | 39.4 MB |
Halving the detail value quadruples both. Above roughly 500,000 triangles slicing gets slow and you gain nothing you can print, so there is little reason to go finer than 0.25 mm on a 0.4 mm nozzle.
Printing it
Relief: flat on the bed, face up. 0.12–0.16 mm layers. Normal infill (15–20%) since the base is structural, not optical. Slow the outer perimeter to 30 mm/s so the surface detail stays crisp.
Lithophane: vertical, on its edge, with a brim. 0.10–0.12 mm layers. 100% infill and zero top/bottom layers — any internal gap shows as a bright patch when backlit. Full cooling, 30–40 mm/s. There is a fuller table in best lithophane settings.
Does the STL need repairing?
It should not. A properly generated heightmap is closed by construction: a relief surface, four side walls and a back, with every edge shared by exactly two triangles. If your converter produces holes, that is a bug in the converter, not something you should have to fix downstream.
It is still worth checking, because a non-watertight mesh will either be rejected by the slicer or quietly auto-repaired into something you did not intend. Drop the file into the STL viewer — it runs a manifold check and gives you exact dimensions and volume, so you can also confirm the panel came out the size you asked for.
Common problems
The print is a flat slab with barely any detail. Depth range too small, or the source image had low contrast. Increase the peak height, then fix the image.
Detail is there but mushy. Detail setting finer than the printer can resolve, or printing too fast. Coarsen to 0.3 mm and slow down.
Visible steps across smooth gradients. Layer height too coarse. Thickness is quantised to whole layers, so 0.2 mm layers over a 2.5 mm range give you only about 13 distinct heights.
Text or thin lines have disappeared. They were finer than two nozzle widths. Make them bigger in the source image; no setting recovers them.
A lithophane looks like a blank white tile. It is working correctly. It needs a light behind it.
The STL is enormous. Coarsen the detail setting. 0.2 mm to 0.3 mm cuts the file to less than half.
Formats
Any image your browser can open works — PNG, JPG/JPEG, WebP, GIF, BMP. PNG and JPG are the two you will actually use. A PNG with transparency has its transparent areas treated as white; flatten it onto a deliberate background first if that matters.
Output is a binary STL, which every slicer reads. If you need a different format afterwards — 3MF to keep real units, OBJ for Blender, STEP for CAD — the 3D file converter handles it.
Tools: Image to STL converter · Lithophane maker · STL viewer · Print cost calculator