Cura reads a picture as a height map; getting a clean STL file back out takes one extra move.
Convert an image to STLUltiMaker Cura will open a PNG or JPG and build a mesh from it, but it does not hand you an STL file. That gap is why people search for image to STL Cura workflows: the picture loads, the preview looks right, and then the only output on offer is G-code. Cura is a slicer. It takes a model, applies your layer height and infill, and writes toolpaths for the printer. If you need a mesh another slicer can open, or a file you can edit and share, you need a converter that writes geometry.
The image route inside Cura is still useful, and it is not a novelty. Cura reads brightness as height, so a greyscale gradient becomes a slope and a white shape on black becomes a raised block. Lithophanes, terrain tiles, stamps and simple reliefs all come out of that. What you cannot do is export the result as STL, because the geometry Cura builds from an image is a sliced model, not a mesh file. Understanding that split saves a lot of wasted time.
The conversion looks like one step from the outside. Underneath, there are three different mechanisms, and they produce different parts.
Every pixel gets a Z value from its brightness. White pixels sit at the top, black pixels at the base, and everything in between forms a slope. Cura does this on import, and so does the browser converter here before it writes out triangles.
For logos and line art, a full height map wastes material. Instead you threshold the image into solid and empty regions, trace the boundary, and extrude it to a fixed thickness. The result is a flat part with sharp edges rather than a relief.
Cura can read a PNG or JPG directly, and its settings panel gives you height, base, width and a darker is higher toggle. That preview is a mesh in memory, but the save path leads to G-code, so the geometry never lands in an STL.
Four moves take you from a photo or drawing to a file your slicer can open.
Convert to greyscale, crop to the aspect ratio you want, and push the contrast so bright and dark areas separate clearly. Keep the long edge at a few hundred pixels or more. A 40 pixel wide image becomes a 40 segment ridge, which prints as visible stair steps.
Set the finished width before you convert, not after. Width and depth set the footprint on the bed, height sets how far the relief rises, and the base adds a solid slab underneath so the part has something to sit on.
Run the conversion in the browser, check the preview, and download the STL. PNG, JPG, GIF, BMP, TIFF, WebP, SVG and HEIC all go in; an STL comes out. A basic conversion is free and needs no account.
The downloaded file drops into Cura like any other model. Check the scale against the ruler, lay the flat base on the bed, and slice at your usual layer height. From there it is a normal print.
Five facts that decide whether this approach works for your file.
Drop in a PNG, JPG or SVG, set the width in millimetres, and download an STL that Cura opens straight away. It runs in the browser on Windows, macOS, Linux, iOS and Android, with nothing to install.
No. Cura imports a PNG or JPG as a height-mapped mesh so it can slice it, but its export path writes G-code, not STL. To end up with an STL you need a converter that writes geometry, and then you open that STL in Cura like any other model.
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