Brightness maps to height, so a greyscale image becomes printable relief geometry without any guessing.
Convert an image to STLAn image to heightmap conversion treats pixel brightness as elevation. White is the peak, black is the floor, and every grey value in between is a point on the slope. There is no model guessing at shapes and no inference step: the same input file always produces the same mesh. You get a surface, not a silhouette. That matters when you want a terrain tile, a stamping die, a texture plate, or a relief that matches a height map you drew in another program. The output is an STL file you can slice and print.
What this replaces: a sculpting session in Blender where you subdivide a plane, load a displacement map, tune the midlevel, and export. Or writing a small script that samples pixels and builds vertices by hand. Both work, and both assume you already have the greyscale source prepared. Doing it in the browser skips the setup. You upload the image, set the height range in millimetres, and download the STL. Files up to 20MB are accepted, in JPG, PNG, GIF, BMP, TIFF, WebP, SVG or HEIC.
Three mechanisms decide what your finished STL looks like.
Each pixel is read and weighted into a single luminance value between 0 and 255. That number is normalised to a fraction and used as the vertex height at that point on the grid. Bright pixels push up, dark pixels stay down, and mid greys become slopes.
Base thickness is the solid floor your print sits on. Peak height is how far white rises above that floor. A 2mm base with a 4mm range produces a part 6mm tall at its highest point, and you can dial both values until the preview reads the way you want.
Adjacent grid points are joined into two triangles per cell, building one continuous surface. STL stores geometry only: no colour, no texture, no material. If the finished piece needs colour, that comes from filament changes or paint after printing.
From a saved image to a file your slicer will open.
Open the image in any editor and convert it to 8-bit greyscale. Raise contrast until the tall regions and the flat regions are clearly separated. Crop borders, captions and watermarks, because every one of them becomes geometry.
Type the base thickness and the peak height in millimetres. Check the preview, which shows the surface before export. A shallow range suits a coaster sized relief; a terrain tile usually wants more.
Download the STL and open it in your slicer. Confirm the base is thick enough to survive being prised off the plate, then slice between 0.12mm and 0.2mm layers. Print a small test first to check the range reads correctly.
Five limits come up repeatedly, and each one has a practical fix.
| Limit | Why it happens | What to do |
|---|---|---|
| Source file over 20MB | The browser has to hold the whole image in memory | Resize to 2000px wide and re-save as PNG |
| Visible banding or terracing | An 8-bit file holds only 256 discrete height steps | Add faint noise before converting, or accept terraces |
| Triangles multiply with resolution | A 1500 by 1500 pixel grid yields 4.5 million triangles | Downsample to 1000px or fewer before converting |
| Colour images convert unpredictably | Luminance weighting of red, green and blue mixes unevenly | Convert to greyscale first, then adjust contrast |
| Soft edges print almost flat | Shallow gradients fall below 0.2mm layer resolution | Sharpen the source or raise the total height range |
None of these are defects of the approach. They are the arithmetic of turning 256 brightness values into millimetres of plastic. Check the triangle count before you slice, and remember that every pixel you upload becomes geometry whether you meant it to or not.
You have the greyscale source and a height range in mind. Upload the image here, check the preview, and take the STL straight to your slicer. Free for a basic conversion, no account needed, and it runs in the browser on desktop or phone.
No. Brightness is read directly and mapped to height, so a given image always produces the same mesh. Nothing is inferred, and a dark region cannot turn into a raised shape you did not draw. A tool that predicts depth from a photograph is a different technique with different failure modes.
The pages that answer the next question after this one.
Skip the complex modeling software. Upload your image now and get a print-ready STL file instantly.
Start Converting Free