Convert bmp to ply

Free online BMP to PLY converter

Turn a BMP height map into a PLY point cloud or displaced 3D mesh.

Convert BMP to PLY online - free

Uploading…
Selected files exceed the 75 MB total limit. Please select fewer or smaller files.

Model type

A relief raises the bright parts of the picture above a base plate: terrain, embossed logos, signs. A lithophane is a thin plate that is thicker where the picture is dark, so the photo appears when light shines through it. Print it in white filament.

Model size (longest side)

Height

Relief: how far the brightest parts rise above the base plate. Lithophane: the thickest point of the plate (the thinnest is 0.8 mm). Auto uses 5 mm for a relief and 3 mm for a lithophane.

Mesh detail

More detail keeps finer features of the picture, but the file gets bigger and slower to slice.

Swaps high and low, for example to raise a dark logo on a white background.

Your file is processed instantly and deleted as soon as you download it.

How it works

  1. 1/3

    Upload your .bmp file

    Click to browse to select your file you want to convert or simply drag & drop your file into selected area.

  2. 2/3

    Perform .bmp to .ply conversion

    After successful file upload, click to convert when you are ready.

  3. 3/3

    Download converted .ply file

    Conversion result is ready to download.

How to convert bmp to ply file

101convert.com Assistant Avatar

101convert.com assistant bot
1h

A BMP file is a 2D raster image, while PLY stores 3D vertices, faces, colors, and normals, so the conversion is useful only when the image represents a height map, scan, or other source of spatial data. A program or 3D printer that requires PLY needs the BMP interpreted as geometry rather than merely renamed or re-encoded.

What the BMP format is

BMP is a bitmap raster format used by Windows Paint, image scanners, screenshots, texture tools, CAD applications, and older rendering software. It stores pixels, usually with 8-bit grayscale, 24-bit RGB, or 32-bit RGBA color; it does not store vertices, polygons, depth, or camera information. BMP files are often uncompressed, which preserves pixel values but makes them larger than PNG or JPEG files.

In 3D work, a grayscale BMP is commonly used as a height map: dark pixels represent low elevation and bright pixels represent high elevation. A normal color photograph contains no reliable depth, so it cannot produce an accurate 3D model without photogrammetry, depth data, or an assumed projection.

What the PLY format is

PLY, also called the Polygon File Format or Stanford Triangle Format, stores 3D model elements such as vertex coordinates, polygon faces, vertex colors, and normals. It is supported by MeshLab, Blender, CloudCompare, Open3D, many 3D scanners, and point-cloud processing tools.

PLY can be ASCII or binary. ASCII is easier to inspect and exchange between programs; binary is smaller and faster for large scans. A PLY generated from one BMP may contain only a colored point cloud or a height-field mesh, not a complete solid model with thickness, watertight boundaries, or physically meaningful scale.

How to actually convert BMP to PLY

Convert a grayscale BMP into a colored point cloud with Python

This method assigns each pixel an X/Y position and converts its brightness into Z height. Install Pillow and NumPy with python -m pip install pillow numpy, then save the following as bmp_to_ply.py:

from PIL import Image
import numpy as np

image = Image.open('input.bmp').convert('RGB')
pixels = np.asarray(image)
gray = np.dot(pixels[..., :3], [0.299, 0.587, 0.114])
height, width = gray.shape
xy_scale = 1.0 / max(width - 1, height - 1)
z_scale = 2.0

with open('output.ply', 'w', encoding='ascii') as out:
    out.write('ply\nformat ascii 1.0\n')
    out.write(f'element vertex {width * height}\n')
    out.write('property float x\nproperty float y\nproperty float z\n')
    out.write('property uchar red\nproperty uchar green\nproperty uchar blue\nend_header\n')
    for row in range(height):
        for col in range(width):
            x = (col - (width - 1) / 2) * xy_scale
            y = ((height - 1 - row) - (height - 1) / 2) * xy_scale
            z = float(gray[row, col]) / 255.0 * z_scale
            r, g, b = pixels[row, col]
            out.write(f'{x} {y} {z} {r} {g} {b}\n')

Run it with python bmp_to_ply.py. The resulting output.ply contains one vertex per pixel and retains the BMP colors. Change z_scale to control relief height; downsample the image first if the source has millions of pixels.

Create a polygon mesh in Blender

  1. Open Blender, add a plane, and subdivide it into a grid with approximately the same aspect ratio as the BMP.
  2. Create a displacement texture from the BMP through the plane's Modifiers → Add Modifier → Displace controls. Set the texture type to an image or movie, load the BMP, and adjust Strength and Midlevel.
  3. Apply the displacement modifier after checking the preview. Add a Solidify modifier only if the exported model needs thickness.
  4. Use File → Export → Stanford (.ply), enable vertex colors or normals when needed, and select the desired ASCII or binary encoding.

For a basic browser conversion without installing software, 101convert.com can convert the file for free. Verify the result in a PLY viewer: a generic image-to-geometry conversion still needs a height interpretation, and a flat or invalid model indicates that the source did not contain usable depth information.

Quality, compatibility, and limitations

Pixel dimensions determine geometric resolution, while grayscale precision determines height resolution. An 8-bit BMP provides only 256 height levels, so smooth ramps may show banding; 16-bit height data is preferable when the source supports it.

The Python example creates vertices but no faces, so viewers display a point cloud. A displaced Blender grid creates polygon faces, but its topology follows the image grid and may need decimation, smoothing, or triangulation in MeshLab or Blender. PLY does not automatically preserve BMP metadata, physical units, transparency, layers, or the original image file.

Many PLY readers expect vertex coordinates in a particular unit convention even though PLY itself does not enforce one. Set the X/Y and Z scales deliberately, and confirm whether the receiving application expects vertex colors, normals, triangular faces, ASCII PLY, or binary little-endian PLY.


Note: This bmp to ply conversion record is incomplete, must be verified, and may contain inaccuracies. Please vote below whether you found this information helpful or not.

Was this information helpful?

BMP vs PLY: format comparison

How the BMP and PLY formats compare on the properties that matter most for this conversion.

Comparison of the BMP and PLY file formats
Property .BMP Bitmap Image File .PLY Polygon File Format
Open standard Partly open Yes
Compression Uncompressed Uncompressed
Typical file size Very large Medium
Opens in a web browser Yes, natively No
Further editing Easy Easy
Metadata support Basic Basic
Plain-text readable No Yes
Best used for Editing and post-production Data exchange
Introduced 1990 1994
Developer Microsoft Stanford University
MIME type image/bmp application/octet-stream

Frequently asked questions

Is the BMP to PLY converter free?

Yes, converting BMP to PLY on 101convert.com is completely free. No registration, email address or installation is required. If you need a higher file size limit or want to convert more files at once, see our plans.

How large can my BMP file be?

You can upload BMP files up to 50 MB and convert up to 20 files at once in a single batch.

What happens to my uploaded files?

Files are processed automatically and deleted from our servers within a few minutes after conversion. We never view or share your files.

Do I need to install any software to convert BMP to PLY?

No. The BMP to PLY conversion runs entirely online in your browser and works on Windows, Mac, Linux, Android and iPhone.

Did the conversion fail?

In most cases, the cause is an incorrect file format. Please upload a valid BMP file for this BMP to PLY conversion. Occasionally, the issue may be on our side. We analyze recurring conversion failures and disable or fix the converter if we detect a defect.