Skip to content

About

No description, website, or topics provided.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Latest commit

 

History

12 Commits

Folders and files

Repository files navigation

BLP Converter

A desktop AvaloniaUI utility for converting BLP (Blizzard Texture Format) images to PNG/JPEG and back. The app uses a native Rust library (rust_blp_converter) for the actual BLP work; the repository currently ships a Windows .dll. To run on other platforms you need to provide a compatible native build and update the import name if required.

BLP Converter UI

Features

Single File

  • Drag & drop or file picker for BLP/PNG/JPEG.
  • Preview of the loaded image.
  • BLP metadata readout: version, dimensions, mipmap count, content/compression type, alpha bits, inferred pixel format, file size and estimated uncompressed size.
  • Conversions:
    • BLP → PNG
    • BLP → JPEG (uses the native library’s defaults)
    • PNG/JPEG → BLP using the selected compression and optional mipmap generation

Batch Conversion

  • Converts BLP/PNG/JPEG recursively, preserving the folder structure.
  • BLP → PNG or JPEG according to the configured default output format. PNG uses the same native conversion path as single-file conversion so BLP alpha metadata is handled consistently.
  • PNG/JPEG → BLP using the configured compression and mipmap settings.
  • Progress bar and counter for long runs.

Settings and Config

  • Default output format selector controls batch BLP exports; single-file conversions are driven by their buttons.
  • JPEG quality applies to batch BLP → JPEG exports.
  • BLP compression and mipmap settings apply to both single-file and batch PNG/JPEG → BLP conversions.
  • Optional World of Warcraft compatibility resize expands each non-power-of-two dimension to the next power of two while preserving RGBA transparency.
  • Settings and last used folders persist in config.json in the application directory.

Technical Details

  • Framework: .NET 9.0
  • UI: AvaloniaUI 11.3.x
  • Image processing: SixLabors.ImageSharp 3.1.12
  • BLP handling: wow-blp via the native rust_blp_converter library

CI / Releases

Pushes to master trigger GitHub Actions to build a self-contained single-file Windows (win-x64) binary and publish a release with a fresh tag; the release title uses the build date. The release bundle (blp-converter-win-x64.zip) contains the executable with the native DLL embedded and extracted at runtime. If you build manually, keep rust_blp_converter.dll next to the executable or supply a platform-specific version.

Project Structure

BlpConverter/
├── App.axaml               # Application resources
├── App.axaml.cs
├── Assets/icon.ico         # App icon
├── BLP/RustBlpConverter.cs # P/Invoke bindings to rust_blp_converter
├── Config/AppConfig.cs     # Config persistence
├── MainWindow.axaml        # UI layout
├── MainWindow.axaml.cs     # UI logic and conversions
├── Program.cs              # Entry point
└── rust_blp_converter.dll  # Native library (Windows build)

Building and Running

dotnet build
dotnet run --project BlpConverter

Ensure rust_blp_converter.dll (or a platform-appropriate build) is available alongside the executable or in the working directory.

About

No description, website, or topics provided.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages