From JPG to STL When the Image Has Been Compressed
It seems as though it should not matter. An STL has no colour at all, so why would colour artifacts in a JPG change anything? They do, and the reason decides which of your images are worth putting through and which will never make a good STL.
The Reason
Why Colour Damage Changes the Shape
Depth is inferred from shading, and compression damages shading first.
Nothing in a flat image states depth. A 3D reconstruction infers it from shading, edges and the way tone falls across a surface — exactly the gentle gradients a lossy JPG throws away first, because they are the part human eyes forgive.
So a heavily compressed image can look perfectly acceptable and still give a worse 3D mesh than a clean one. Blocking at a high-contrast edge reads as a step in the surface. Ringing around dark lines reads as a groove. A smooth curve quantised into bands arrives faceted, and once colour is dropped for the STL there is nothing left to hide it behind.
Which Photographs Are Worth Putting Through
Triage, roughly in order of how much each one costs the finished STL.
| Signal | Good sign | Bad sign |
|---|---|---|
| Save history | Straight off a camera or phone | Re-saved repeatedly, or a screenshot of one |
| Edges | A clean boundary against the background | Visible blocks where light meets dark |
| Lighting | Even and soft, from one direction | Hard shadows the 3D mesh will treat as shape |
| Subject | One object filling the image | A crowded scene to be separated first |
| Sharpening | None applied | Bright fringes along every edge |
Generation loss is the underestimated one. Every re-save of a JPG compounds the last, so an image that has been through a chat app, a download and an edit sits further from the original than its file size suggests. Go back to the earliest copy you have.
The Route From a Photo to an STL
No printable file arrives directly, whatever the input was.
Pick the cleanest copy
The original beats the convenient one; no later step recovers detail the image no longer holds.
Generate
A textured .glb 3D mesh comes back in about a minute, in a browser tab, with nothing to install.
Look at it untextured
Baked colour hides surface faults; turn it off and compression damage on the 3D mesh becomes obvious.
Convert
Close holes, remove stray shells, export the STL, then set the scale in the slicer.
The third habit is the valuable one. It costs a moment and tells you whether the fault is the 3D reconstruction or the image you fed it, which decides whether regenerating is worth trying before you export an STL.
Reality Check
What Not to Expect
Settling this early saves a wasted print.
Fine surface texture — fabric weave, engraved lettering, skin detail — will not reach the STL, and a compressed image makes that worse rather than causing it. None of this is measured either: one image carries no dimensions, so size stays your decision. If the shape has to be accurate rather than merely convincing, this route is the wrong one, and a photo that has been through five apps is the wrong input for it.
Questions
Frequently Asked Questions
Yes. Depth is inferred from shading, and compression damages shading first, so the 3D mesh inherits the damage even though colour is discarded later.
It does no harm and no good. Re-saving cannot restore detail already thrown away; only finding an earlier copy helps.
Usually, straight off the camera roll. Even lighting and a plain background matter far more to the 3D reconstruction than the megapixel count.
Often because smooth gradients in the image were quantised into bands, which the reconstruction reads as flat planes and the STL then records faithfully.
No. Each run reads one image and a rate limit applies, so multiple angles are not combined into one 3D mesh.
Keep reading
More Ways to Turn an Image Into a 3D Model
Explore image to 3D
Turn Your Image Into a 3D Model — Free
No signup, no software, no modelling experience. Drop in an image or describe one, and download a textured .glb in about a minute.