Skip to content

Image to STL converter, free and fully in your browser

Turn a PNG, JPG, WebP, GIF or SVG image into a binary STL for 3D printing: a raised relief of a logo, or a flat lithophane of a photo. Set the size and depth, check the 3D preview, download. The image never leaves your computer: everything is computed in your browser.

Nothing is uploaded. The image is read and converted on your machine.

Model
Relief raises the subject from a flat base. A flat lithophane is thicker where the image is darker, so it glows when lit from behind.
Depth follows the image proportions, so nothing is stretched. Range 5 to 500.
The flat plate under the relief. Lowest areas are this thick.
How far the highest areas rise above the base.
More points give finer detail and more triangles. Range 20 to 400.
1 keeps the tones as they are. Above 1 darkens the mid tones, below 1 lightens them.
Swaps high and low. In relief mode it is set from the image edge, so the subject rises above the background. Tick or untick to override.

Add an image to see the grid and the triangle count before you build.

Add an image to start.

Grid
-
Triangles
-
Model size
-
STL size
-
Build time
-

Need a curved, cylinder, sphere, moon or heart lithophane, a border or up to 1024 points? The Lithophane Generator (Pro) makes those shapes. A wrap-around cylinder lamp is also in the free 3D relief tool.

The 3D preview appears here after you add an image.
Drag to rotate, scroll or pinch to zoom. Colour shows height: in relief mode light is high, in lithophane mode light is thin.

How it works

Three steps, no account.

  1. Add an image

    Drop a PNG, JPG, WebP, GIF or SVG file on the converter above. It is read in your browser and never uploaded. A transparent background is treated as white.

  2. Set size and depth

    Choose Relief or Flat lithophane, type the width in millimetres, the base thickness and the relief height, and pick a resolution. The triangle count updates before anything is built, and the preview follows every change.

  3. Download the STL

    You get a closed binary STL in millimetres, ready for Cura, PrusaSlicer, Bambu Studio or OrcaSlicer. The model stands on Z = 0 and is centred on X and Y.

Settings

What goes in, what comes out and what you can set.

SettingRange and defaultWhat it does
Input formatsPNG, JPG, WebP, GIF, SVGOne image at a time. An animated GIF uses its first frame. Transparent areas count as white. Images over 2,048 pixels on the long side are scaled down once.
ModeRelief or flat lithophane, default reliefRelief: light areas are high. Lithophane: dark areas are thick, so the picture shows when light passes through.
Width5 to 500 mm, default 60Model width on X. The depth on Y follows the image proportions.
Base thickness0.1 to 20 mm, default 0.8The flat plate. In lithophane mode it is the thinnest part, where the image is brightest. The default is the FDM minimum wall, 0.8 mm, and the page warns below it.
Relief height0.1 to 50 mm, default 0.8How far the highest areas rise above the base. In lithophane mode it is the extra thickness of the darkest areas. The default is the FDM minimum emboss height, 0.8 mm, and the page warns below it in relief mode.
Resolution20 to 400 points, default 200Grid points along the longer side. A W x H grid makes 4 x (W x H - 1) triangles, so the ceiling of 400 x 400 is 639,996 triangles.
Gamma0.2 to 5, default 1Tone curve applied before the height is set. Above 1 darkens the mid tones, below 1 lightens them.
Invert tonesAutomaticSwaps high and low. In relief mode it is on when the image edge is light, so a dark logo rises from a light background.
OutputBinary STL, millimetres84 byte header, then 50 bytes per triangle. A closed solid: flat bottom on Z = 0, four side walls, every edge shared by exactly two triangles.
UploadNoneThe page sends no image and no model data anywhere.

Relief or lithophane

Both modes build the same kind of closed solid. They differ in what the brightness of a point means.

ReliefFlat lithophane
Height followsBrightness: light is high. Invert tones for a dark subject on a light background.Darkness: dark is thick, bright is thin.
Best forLogos, icons, signs, badges, keychains, stamps and bas-reliefPhotos, portraits, night lights and window hangings
How you look at itIn ordinary light, from the textured sideWith light shining through it from behind
Best imageFew tones, strong contrast, plain backgroundMany tones, smooth gradients, good exposure
Thickness numbersFor FDM, a base of at least 0.8 mm and a relief height of at least 0.8 mm.The thinnest part follows the 0.8 mm FDM minimum wall. The rules core has no lithophane thickness figure, so none is given: test a range with your own filament.
Layer heightAt most 0.8 times the nozzle diameter, which is 0.32 mm for a 0.4 mm nozzle. Thinner layers give smoother steps between tones.
Reading directionThe image reads correctly when you look at the textured side. Seen from the flat back it is mirrored.

Which image works best

A few habits make the difference between a clean model and a bumpy one.

  • Strong contrast

    A black logo on white gives a clean step between base and relief. Mid grey becomes a mid height slope.

  • Plain background

    Use one flat colour, or a transparent PNG. A busy background turns into bumps across the base.

  • Strokes wide enough

    Embossed lines and text strokes should be at least 1.0 mm wide in the finished size. At 60 mm wide and 200 points, that is about 3 grid points.

  • PNG or SVG for logos

    Sharp edges and no compression noise. JPG and WebP are fine for photos. An SVG is drawn at 1,024 pixels on the long side before it is sampled.

  • Good exposure for photos

    Very dark or very bright photos lose tones. Adjust Gamma before you change the thickness.

  • Match resolution to detail

    More points mean finer detail and a bigger file. The page shows the triangle count before it builds, so you can pick the lowest resolution that keeps your detail.

Measured example

Three test images at the default settings (60 mm wide, 200 points on the long side)

SampleImageModeGridTrianglesBox, mmSTL sizeTime
Logo with text200 x 120 pxrelief200 x 12095,99660.000 x 36.000 x 1.6004.58 MB215 ms
Gradient, portrait150 x 200 pxrelief150 x 200119,99660.000 x 80.000 x 1.6005.72 MB200 ms
Photo200 x 150 pxlithophane200 x 150119,99660.000 x 45.000 x 1.6005.72 MB180 ms

The test logo at four resolutions

Points, long sideGridTrianglesSTL sizeTime
100100 x 6023,9961.14 MB94 ms
200200 x 12095,9964.58 MB215 ms
300300 x 180215,99610.30 MB347 ms
400400 x 240383,99618.31 MB553 ms

Measured on 2026-10-07 in headless Chromium 149.0.7827.55 on an Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz workstation. Time is the page's own work from the moment the settings are applied until the binary STL is ready (resampling the image, the height map, the closed mesh and the STL bytes); drawing the 3D preview is not included. Median of 3 runs per row. The test logo is a 200 x 120 px PNG, the gradient a 150 x 200 px PNG and the photo a 200 x 150 px WebP. Each STL was checked byte by byte: size 84 + 50 x triangles, every edge shared by exactly two triangles, and the heights equal the reference engine on the same pixels. Your times will differ.

Frequently asked questions

How do I convert an image to STL?

Drop the image onto the converter at the top of this page, choose Relief or Flat lithophane, set the width in millimetres, the base thickness and the relief height, check the 3D preview and press Download STL. The page turns the brightness of each point into a height, builds a closed solid with a flat bottom and four side walls, and writes a binary STL in millimetres. There is no sign-up and no queue.

How do I convert a PNG to STL?

Drop the .png file onto the converter and press Download STL. PNG is the best format for logos and icons: the edges stay sharp, and a transparent background is treated as white. A dark logo on a white or transparent background becomes a raised logo on a flat base by default. The 1.8 KB test logo (a 200 x 120 px PNG) gave 95,996 triangles and a 4.58 MB STL at the default settings.

How do I convert a JPG to STL?

Drop the .jpg or .jpeg file onto the converter. JPEG compression adds faint noise around edges, and in a relief that noise shows as small bumps, so for a logo prefer PNG or SVG. For a photo JPG is fine: choose Flat lithophane to make a picture that glows when lit from behind, or Relief for a bas-relief in which bright areas are high.

How do I convert a logo to STL?

Use a logo with strong contrast on a plain background, ideally a dark shape on white, as PNG or SVG. The converter looks at the edge of the image: when the background is light, the logo rises above it, so the logo is raised and the background is the flat base. Keep strokes and text at least 1.0 mm wide in the finished size, which is about 3 grid points at 60 mm wide and 200 points. The defaults, a 0.8 mm base and a 0.8 mm relief, are the FDM minimums from the EduFacturing rules core; raise the relief height for a bolder look. You can drop an SVG too: it is drawn at 1,024 pixels on the long side before it is sampled.

Is the image to STL converter free?

Yes. There is no account, no daily quota and no watermark on the output.

Is my image uploaded to a server?

No. The image is read inside your browser tab, drawn on a canvas and converted by code that runs on your own machine. The page sends no image and no model data anywhere, which matters for client logos and private photos.

How do I make a lithophane from a photo?

Choose Flat lithophane, drop a well exposed photo with a clear subject and set the model width. Dark areas become thick and block light, bright areas stay thin and glow when lit from behind. The thinnest part is the base thickness and the darkest areas are the base plus the extra thickness you set; more extra thickness gives more contrast. The rules core has no thickness figure for lithophanes, so this page does not give one: try a thickness range with your own filament, because light transmission depends on the material, the colour and the layer height. The FDM minimum wall of 0.8 mm still applies to the thinnest part, and the page warns below it. For curved, cylinder and other lithophane shapes, open the Lithophane Generator (Pro).

Can I convert the STL to STEP for CAD?

Yes, with the STL to STEP converter. The STEP file it makes from triangles is free and is created in your browser. If you want an editable CAD model with planes, cylinders and holes recognised, Editable CAD on that page costs 4.90 EUR per file, after a free preview. It works best on parts made of flat walls, cylinders and holes, so check the preview before you pay.

What resolution should I use, and how big will the file be?

Resolution is the number of grid points along the longer side, from 20 to 400; the shorter side follows the picture. A grid of W x H points makes 4 x (W x H - 1) triangles, and a binary STL takes 84 bytes plus 50 bytes per triangle. The test logo made 23,996 triangles (1.14 MB) at 100 points and 383,996 triangles (18.31 MB) at 400 points. At 60 mm wide, 200 points are 0.30 mm apart. The page shows the triangle count and file size before it builds, so you can lower the resolution if the file is larger than you need.

Why is my logo sunk into the base instead of raised?

In relief mode light areas are high. A dark logo on a light background would sink into the plate, so the page switches Invert tones on by itself when the edge of the image is light, and the logo rises. If your logo is light on a dark background, or the result is the wrong way round, tick or untick Invert tones. In lithophane mode dark areas are always the thick ones.

Other tools

Part of the EduFacturing tool set.