Gamedev Quick Tools

Channel packer

Build one texture from the red, green, blue and alpha channels of other textures, or reorder the channels of a packed texture. Values are copied exactly, with no gamma or colour changes. Your files stay in your browser and are never uploaded.

Textures (PNG, JPG, WebP or TGA), up to 8

No textures loaded

    Output channels

    Preview

    Load a texture to start.

    Export

    How the channel packer works

    Each channel of the output (red, green, blue and alpha) takes its values from one channel of a loaded texture, from the greyscale luminance of a texture (Rec. 709 weights on the stored values), or from a constant between 0 and 255. Invert flips a channel to 255 minus its value. This lets you pack separate maps, such as ambient occlusion, roughness and metallic, into one texture, or rearrange the channels of a texture that is already packed.

    Textures are decoded without premultiplying alpha or converting colour profiles, so the 8-bit values you get are the ones stored in the file. Pixels with an alpha of 0 keep their colour. If a texture is a different size from the output, it is resampled with bilinear smoothing, which blends neighbouring values. That is fine for colour, but it changes the numbers in data textures, so match sizes where you can.

    To rearrange the channels of one texture, turn on swizzle mode and pick where each output channel comes from. For example, invert G to convert a normal map between DirectX and OpenGL. Export as an 8-bit PNG or an uncompressed 32-bit TGA.