Skip to content
3DToolBench

Convert PNG to GLB

This takes a picture and gives you back a 3D object carrying it — a flat plane with the image on both sides. It is what you want when something in a 3D scene needs to be a picture: a sign, a poster, a label, a photograph on a wall.

Drag a 3D file here, or.

This page is set up for PNG files. Other formats we can read work here too.

The file is read on your own computer. It is never uploaded.

Add a file to switch this on.

Your file is read by your own browser and never sent to a server. There is no upload, no account and no copy of your model anywhere but on your computer.

It is a picture on a plane, not a heightmap

Two triangles, with the image stretched across them. Nothing reads the brightness of a pixel and lifts the surface by it, and nothing traces the outline of the shape in the picture. Those are real things and they are different tools; doing one of them quietly here would surprise everybody who wanted a picture.

What you get is an object a 3D scene can hold: it can be moved, rotated, lit and clicked on, which a JPEG sitting next to the scene cannot.

How big it comes out

A picture has no size of its own — it has pixels, and pixels are not millimetres. So one has to be chosen, and the longer side is set to 200 mm, roughly a sheet of paper. The shorter side follows the shape of the image, so nothing arrives stretched.

Change the second unit box to metres and the same plane is written 200 metres along its longer side, which is the right choice for a billboard and the wrong one for a postcard. The measurements beside the 3D view always say what is about to be written.

Transparency comes through

A PNG with an alpha channel keeps it, so a logo with a transparent background stays a logo rather than becoming a white rectangle with a logo on it.

That is most of the reason to use PNG here rather than a photograph format. If you are converting a photograph, the transparency is not doing anything and the file is simply larger than it needs to be.

Pixel dimensions decide the quality, not the size of the plane

The plane is 200 mm along its longer side whatever picture you give it, so the thing that decides how sharp the result looks is how many pixels the image has. A 4000 pixel wide photograph on a 200 mm plane is about 500 pixels per inch, which is sharper than anything needs to be. A 200 pixel logo on the same plane is 25 pixels per inch, which looks soft the moment anyone moves closer.

That matters most in AR and in a viewer somebody can zoom. On a thumbnail nothing shows. As a rough rule, aim for at least 1000 pixels along the longer side for anything a person will look at closely, and do not bother going past about 2000 — the file size grows and the difference stops being visible.

The image is packed into the GLB at its original resolution and is not resized, so an eight megapixel photograph produces a large file. Shrink it in an image editor first if the model is going on a web page.

What survives, and what does not

Kept in the GLB file

  • Every pixel of the image, as the texture on the plane
  • The shape of the picture, so nothing is stretched
  • Transparency, where the PNG has an alpha channel

Lost on the way

  • Nothing: there is nothing in a picture that a textured plane cannot hold

How to convert PNG to GLB

  1. Drop the .png file in

    It is decoded in your browser and wrapped onto a plane straight away, so you see the result immediately.

  2. Check the proportions

    The longer side is set to 200 mm and the shorter one follows the shape of the image, so nothing is stretched. A tall picture gives a tall plane.

  3. Change the output unit if you want a different size

    Metres instead of millimetres gives you a 200 metre plane, which is right for a billboard in a large scene and wrong for a postcard.

  4. Download the .glb

    One binary file with the image packed inside it as a texture, double-sided so it is visible from behind.

PNG and GLB compared

PNG and GLB compared, row by row
PropertyPNG.pngGLB.glb
File contentsBinary, losslessly compressed with DEFLATE, in labelled chunks.One binary file: a small header, the same JSON as glTF, then all the buffers and images.
GeometryNone. It is a grid of pixels.Triangles, with skinning weights and animation channels alongside them.
UnitsOptional pixels-per-metre in a pHYs chunk, usually absent.Metres, fixed by the specification.
Colour and textureUp to 16 bits per channel, with full alpha transparency.Full physically based materials, with the texture images packed inside the file.
Separate objectsOne image.A scene graph of named nodes, each with its own position and rotation.
Published byThe PNG Development Group, 1996, to replace GIF. Now ISO 15948.The Khronos Group, 2015, as the single-file packaging of glTF.
Written byEvery image editor, every screenshot tool, every browser.Blender, Sketchfab, Substance Painter, and every tool that ships models to the web.

Questions

Can it make a 3D shape out of the image?
No. This makes a flat plane carrying the picture. Raising a surface by the brightness of each pixel is a heightmap, and cutting out the shape in the picture is an extrusion; both are different tools and neither is what this one does.
Which way does the plane face?
Both. The plane is written double-sided, because a one-sided plane is invisible from behind and somebody who cannot find their picture in a scene has no way of knowing that is why.
Can I use a JPEG?
This page is set up for PNG. Drop a JPEG in and it will not be read — convert it to PNG first in any image editor, which takes a moment and loses nothing that matters at this size.
Is my image uploaded anywhere?
No. It is decoded and turned into a model inside your browser. Nothing leaves your computer.
How many pixels should my image have?
At least 1000 along the longer side for anything someone will look at closely, and there is little point going past about 2000. The image is packed in at its original resolution, so a huge photograph makes a huge GLB.

Where to go next