---
title: "JPG to STL"
description: "Convert JPG photos to 3D printable STL (jpg to stl) for reliefs and lithophanes. Processed locally in your browser, no upload needed."
toolId: "jpg-to-stl"
category: "conversion"
subgroup: "image-to-3d"
subgroupName: "Image to 3D Model"
url: "https://any3d.cc/en-US/tools/jpg-to-stl"
markdown: "https://any3d.cc/llm/tools/jpg-to-stl.md"
---

# JPG to STL

JPG photo → printable STL: heightmap relief/lithophane or contour stamp, free online.

**Category:** 3D Format Conversion Tools (`conversion`)
**Subgroup:** Image to 3D Model (`image-to-3d`)

**HTML:** https://any3d.cc/en-US/tools/jpg-to-stl

> Runs entirely in the browser. Files are not uploaded to Any3D servers.

## Overview

For everyday JPG photos: heightmap maps brightness to a relief, great for portrait reliefs and lithophane panels; Outline Extrude mode extracts outlines into solid stamps or silhouettes. JPG has no transparency channel, so crop complex backgrounds first. The photo is turned into geometry locally in your browser.

## About Configuration Options

### Conversion Mode

- **Conversion Mode** (Default: Outline Extrude): Select how the image should be converted into 3D geometry.
  - `contour` — Outline Extrude (Recommended): Generates solid shapes with uniform thickness from image outlines. Ideal for stamps, logos, nameplates, and other uniform-thickness objects.
  - `heightmap` — Heightmap: Creates a relief surface from the image's light and dark areas. By default darker parts are raised; change it under Raise By to lighter, vivid colors, or custom per color. Great for photo reliefs, terrain models, and artistic surfaces.

### Size

- **Width (X)** (Default: 100mm; Range: 10mm – 500mm): Final model width, including the base. With the aspect ratio locked, the length follows the shape's proportions and does not change with Detail.
- **Length (Y)**: Locked to the width by the shape's aspect ratio. Editing it rescales the width.
- **Lock Aspect Ratio** (Default: on): When on, the height follows the width using the shape's proportions. Turn off to set width and height separately (the model is stretched).

### Background

- **Background** (Default: By Brightness): By Brightness: transparent areas of a PNG are the background; opaque images are split by Threshold. Remove by Color: transparent areas plus pixels close to any picked color are removed. Keep Background: nothing is removed.
  - `auto` — By Brightness (Recommended)
  - `color` — Remove by Color
  - `keep` — Keep Background
- **Background Colors** (Default: #ffffff): Pixels close to any of these colors are removed. Add a second color for gray-and-white checkerboards or two-tone backgrounds (up to 4).
- **Tolerance** (Default: 15; Range: 0 – 100): Higher values also remove colors further from the picked ones. Raise it if a colored fringe remains or the background is uneven.
- **Transparent Fill** (Default: White): Fill transparent areas with this color and keep the whole image.
  - `white` — White (Recommended)
  - `black` — Black

### Outline Extrude Settings

- **Threshold** (Default: 128; Range: 0 – 255): Brightness cut-off (0-255) between dark and light. Higher values count more (lighter) pixels as dark; lower values keep only the darkest pixels.
- **Extrude Height** (Default: 10; Range: 1 – 100 · step 0.1): The thickness of the extruded geometry in millimeters. Controls how tall the final 3D model will be.
- **Edge Rounding** (Default: 0.5; Range: 0 – 5 · step 0.1): Rounds the top edge of the outline. The value is the radius; 0 keeps a sharp edge.
- **Rounding Segments** (Default: 3; Range: 1 – 8): The number of segments used to create the bevel curve. More segments produce smoother bevels at the cost of more geometry.
- **Keep Sharp Corners** (Default: 37; Range: 5 – 90): Corners that turn more than this angle stay sharp and are not smoothed. Lower values keep more corners sharp.
- **Detail** (Default: 1; Range: 0.1 – 2 · step 0.1): Controls the resolution of the generated mesh. Higher quality produces smoother surfaces but larger file sizes.
- **Base** (Default: None): Adds a solid base under the shape. Rectangle follows the bounding box; Follow Outline follows the shape's outline.
  - `none` — None (Recommended)
  - `rect` — Rectangle
  - `outline` — Follow Outline
  - `circle` — Circle
- **Base Thickness** (Default: 2mm; Range: 0.5mm – 10mm · step 0.1mm): Thickness of the base under the shape.
- **Base Margin** (Default: 3mm; Range: 0mm – 20mm · step 0.1mm): How far the base extends beyond the shape on each side.
- **Base Segments** (Default: 64; Range: 16 – 256): Smoothness of the circular base and of rounded corners on the outline base. More segments are smoother but make a larger file.
- **Base Color** (Default: #e1e1e1): Only for 3MF export: color of the base part.
- **Extract** (Default: Dark Parts): Choose whether the dark or the light parts of the image become solid. Pick Light Parts when the subject is lighter than the background.
  - `dark` — Dark Parts (Recommended)
  - `light` — Light Parts

### Cleanup

- **Max Colors** (Default: 12; Range: 1 – 16): Maximum number of colors kept after merging similar shades. Each color becomes its own shape, which affects how the model is split (STL too) and the parts of a multi-color 3MF.
- **Ignore Small Specks** (Default: 15; Range: 0 – 200): Spots and holes smaller than this area are ignored. Raise it for noisy scans; lower it to keep tiny details.
- **Outline Simplification** (Default: 0; Range: 0 – 4 · step 0.05): Higher values give simpler edges and fewer triangles; 0 (default) follows the image exactly.

### Heightmap Settings

- **Relief Height** (Default: 5; Range: 0.5 – 20 · step 0.1): The maximum height of the raised areas in millimeters. Controls the overall relief depth.
- **Minimum Base Thickness** (Default: 1; Range: 0 – 5 · step 0.1): Thickness at the lowest point of the relief; thicker is sturdier. In By Brightness mode, transparent areas of a PNG count as background and sit at this thickness.
- **Smoothing** (Default: 2; Range: 0 – 10): Applies smoothing to the heightmap surface to reduce noise and stair-stepping artifacts. Higher values produce smoother surfaces.
- **Detail** (Default: 400; Range: 100 – 400 · step 50): Controls the detail level of the generated mesh. Higher resolution preserves more image detail but increases file size.
- **Cut Out Subject** (Default: on): Background areas are left out: only the subject is printed, with sides following its outline. Turn off to keep the full rectangular base.
- **Raise By** (Default: Dark Raised): Dark Raised suits black-and-white logos and photo reliefs; Light Raised is the opposite; Vivid Raised lifts colorful areas while white, gray and black stay flat; Custom per Color sets a height for each color.
  - `dark` — Dark Raised (Recommended)
  - `light` — Light Raised
  - `saturation` — Vivid Raised
  - `custom` — Custom per Color
- **Color Heights**: Set a height for each main color. Pixels use the closest color.
- **Edge Rounding** (Default: 0.5; Range: 0 – 3 · step 0.1): Rounds the top edge of the subject's sides; 0 keeps a sharp edge. The outline grows outward by about the radius.
- **Bottom Rounding** (Default: 0; Range: 0 – 3 · step 0.1): Rounds the bottom edge of the subject's sides; 0 keeps a sharp edge (default). The footprint stays on the outline; the upper shape grows outward by about the radius.
- **Rounding Segments** (Default: 3; Range: 1 – 10): More segments give a smoother curve.

## Format Information

### Input format

- **Extension:** jpg, jpeg, jfif
- **Full Name:** JPEG (Joint Photographic Experts Group)
- **Type:** Image
- **Format:** JPG / JPEG
- **Tools:** [Photoshop](https://www.adobe.com/products/photoshop.html), [GIMP](https://www.gimp.org), [Krita](https://krita.org), [Paint.NET](https://paint.net/)
- **Open With:** Image Editor, Windows Photos, Preview (Mac)
- **Description:** JPG (JPEG) is the most universal lossy photo format, standardized by the JPEG committee in 1992, offering a good balance between quality and file size, and supported by virtually every device and software. It is ideal for photographs, screenshots, and web images.

The downside of JPG is that compression introduces block artifacts and it does not support transparency, causing edges and text to blur. For image-to-3D conversion, JPG suits photographic height maps, but for contour-based conversion, PNG is recommended for clean edges; artifacts at the boundary between dark backgrounds and subject may affect the quality of the generated mesh.
- **Supported Features:**
  - Efficient lossy compression for photos
  - Broad compatibility across all platforms and editing tools
  - 24-bit RGB color support
- **Notes:**
  - Lossy compression may introduce artifacts on sharp edges

### Output format

- **Extension:** stl
- **Full Name:** Stereolithography
- **Type:** 3D Mesh
- **Format:** STL (Binary / ASCII)
- **Tools:** [Cura](https://ultimaker.com/software/ultimaker-cura/), [PrusaSlicer](https://www.prusa3d.com/p/prusaslicer/), [Chitubox](https://www.chitubox.com), [Simplify3D](https://www.simplify3d.com)
- **Open With:** Slicer Software, [MeshLab](https://www.meshlab.net), Windows 3D Viewer, [STL Viewer Online](https://any3d.cc/en-US/tools/stl-viewer)
- **Description:** STL is the de facto standard mesh format in 3D printing, storing only triangular surface data since 1987, without color, texture, or material. Almost all slicers (Cura, PrusaSlicer, Bambu Studio, ChiTuBox) and printers directly support STL, ensuring its enduring popularity.

Two classic pitfalls: STL lacks unit definitions, making millimeters and inches indistinguishable on disk; always verify scale in your slicer. It also has ASCII (readable but 4-6x larger) and binary (compact, default) encodings. For multi-color printing, materials, or parameters, switch to 3MF, which carries richer print information while maintaining slicer compatibility.
- **Supported Features:**
  - Triangle mesh only, simple and universally compatible
  - Binary and ASCII encoding options
  - Directly importable into Cura, PrusaSlicer, Chitubox, etc.
- **Notes:**
  - Does not support colors, textures or materials
  - No unit definition; verify scale in your slicer
  - ASCII format is 4-6× larger than binary

## How to use

### 1. Upload your JPG photo

Drag in a JPG; crop busy backgrounds first and choose high-contrast subjects for sharper reliefs.

### 2. Choose a mode

Heightmap builds a relief or lithophane from brightness; Outline Extrude mode extracts outlines for a solid stamp.

### 3. Adjust resolution and download

Balance detail against polygon count, then download the STL and print it.

## FAQ

### What is JPG to STL best for?

It is best for photo reliefs and lithophane panels using the heightmap mode. Simple high-contrast images can also become stamp-style solids with the Outline Extrude mode. Since JPG has no transparency, cutout stamps are easier with a transparent PNG.

### What's the difference between photo-to-3D printing and lithophane?

A heightmap maps brightness to thickness: lithophanes use backlighting to reveal the image while regular reliefs rely on surface variation. The Outline Extrude mode extracts outlines and extrudes them into a solid. You can switch modes and adjust resolution before converting.

### What if a complex-color JPG gives poor results?

First increase contrast, crop out cluttered backgrounds, or convert the image to grayscale before uploading. The tool relies mainly on brightness information, so clean black-and-white or grayscale images are usually more reliable.

### Will the STL preserve photo colors?

No. STL stores geometry only. For a color photo model, use the JPG-to-3MF tool or paint the print after it finishes.

### Will converting a very large JPG be slow?

Everything runs locally in your browser, so a huge image takes longer and creates a heavier model. Lower the resolution setting (100-400) to convert faster with fewer polygons, or resize the image first.

### How do I smooth a rough or noisy surface?

JPEG compression noise can carry into the relief surface. Increase the smooth level (0-10) to soften it, and start from a higher-quality export for the cleanest result.
