wow-blp 0.6.2

Parser and encoder for World of Warcraft BLP texture files with DXT compression support
Documentation
use wow_blp::{convert::blp_to_image, parser::load_blp};

fn main() {
    let args: Vec<String> = std::env::args().collect();

    if args.len() < 2 {
        println!("Usage: {} <input.blp> [output.png]", args[0]);
        println!("\nExample: Convert a BLP texture file to PNG");
        return;
    }

    let blp_filename = &args[1];
    let output_filename = args.get(2).map(String::as_str).unwrap_or("output.png");

    match load_blp(blp_filename) {
        Ok(blp_file) => {
            println!("✓ Loaded BLP file: {blp_filename}");
            println!("  Version: {:?}", blp_file.header.version);
            println!(
                "  Dimensions: {}x{}",
                blp_file.header.width, blp_file.header.height
            );
            println!("  Mipmaps: {}", blp_file.image_count());

            match blp_to_image(&blp_file, 0) {
                Ok(image) => match image.save(output_filename) {
                    Ok(_) => println!("✓ Saved as: {output_filename}"),
                    Err(e) => eprintln!("✗ Failed to save image: {e}"),
                },
                Err(e) => eprintln!("✗ Failed to convert BLP to image: {e}"),
            }
        }
        Err(e) => {
            eprintln!("✗ Failed to load BLP file '{blp_filename}': {e}");
            eprintln!("\nTip: Make sure the file exists and is a valid BLP texture file.");
        }
    }
}