.BLP
From Wikipedia, the free encyclopedia
.BLP files are texture files used by games made by Blizzard Entertainment. While Blizzard provides Custom Interface Kit for extracting the user interface files from the World of Warcraft .MPQs, they do not provide a utility to view the .BLP files contained within. Also, .BLP graphics were used for Warcraft III, and are also stored within .MPQs.
Contents |
[edit] Format
The file starts with a proprietary header, followed by the texture data. The texture data is typically stored in DXT1, DXT3, uncompressed or possibly DXT5. It is important to note that the size of the image is a power of 2.
[edit] Converters
Several third party applications exist that can convert .BLP files to .tga files and vice versa. Some of the programs were made for Warcraft III textures though, and don't work for all Blizzard game textures. These converters have become very important to the Warcraft III modding community, and have been the doorway to the vast amount of customised skins available for download.
[edit] Specification
Note that all types are little-endian.
BLP2 Format
struct BLP2Header { FourCC ID; // Always 'BLP2' UInt32 Type; UInt8 Encoding; UInt8 AlphaDepth; UInt8 AlphaEncoding; UInt8 HasMips; UInt32 Width; UInt32 Height; UInt32 Offsets[16]; UInt32 Lengths[16]; RGBAColor8 Palette[256]; }; Type 0: JPEG compression 1: Uncompressed or DirectX compression Encoding 1: Uncompressed 2: DirectX compression AlphaDepth 0: No alpha channel 1: 1 bit alpha 8: 8 bit alpha AlphaEncoding 0: DXT1 alpha (0 or 1 bit alpha) 1: DXT2/3 alpha (4 bit alpha) 7: DXT4/5 alpha (interpolated alpha) HasMips 0: No mip levels 1: Mip levels present (the number of levels is determined by the image size) Width, Height: Dimensions of the image in pixels (always a power of two) Offsets[0]: Offset from the start of the file to the image data Lengths[0]: Length in bytes of the image data Palette: 4-byte RGBA color values for paletted textures (this field is present regardless of whether the texture actually uses palettes)
Type 1 Encoding 0 AlphaDepth 0 (uncompressed paletted image with no alpha)
Each by of the image data is an index into Palette which contains the actual RGB value for the pixel. Although the palette entries are 32-bits, the alpha value of each Palette entry may contain garbage and should be discarded.
Type 1 Encoding 1 AlphaDepth 1 (uncompressed paletted image with 1-bit alpha)
This is the same as Type 1 Encoding 1 AlphaDepth 0 except that immediately following the index array is a second image array containing 1-bit alpha values for each pixel. The first byte of the array is for pixels 0 through 7, the second byte for pixels 8 through 15 and so on. Bit 0 of each byte corresponds to the first pixel (leftmost) in the group, bit 7 to the rightmost. A set bit indicates the pixel is opaque while a zero bit indicates a transparent pixel.
Type 1 Encoding 1 AlphaDepth 8(uncompressed paletted image with 8-bit alpha)
This is the same as Type 1 Encoding 1 AlphaDepth 0 except that immediately following the index array is a second image array containing the actual 8-bit alpha values for each pixel. This second array starts at BLP2Header.Offset[0] + BLP2Header.Width * BLP2Header.Height.
Type 1 Encoding 2 AlphaDepth 0 (DXT1 no alpha)
The image data is formatted using DXT1 compression with no alpha channel.
Type 1 Encoding 2 AlphaDepth 1 (DXT1 one bit alpha)
The image data is formatted using DXT1 compression with a one-bit alpha channel.
Type 1 Encoding 2 AlphaDepth 8 AlphaEncoding 1(DXT3)
The image data is formatted using DXT3 compression.
Type 1 Encoding 2 AlphaDepth 8 AlphaEncoding 7(DXT5)
The image data is formatted using DXT5 compression.
[edit] References
- .Blp to .TGA (and vice versa) converter for Windows 2000/XP
- .blp to .tga (and vice versa) converter for Mac OS
- .blp viewer (for World of Warcraft BLPs) for Mac OS
- .blp viewer for .mpqs (for World of Warcraft BLPs) for Windows OS
- Wc3sear.ch's skin database, currently at over 2300 Warcraft III skins.
- BLP format specifications