AstcSharp 0.9.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package AstcSharp --version 0.9.4
                    
NuGet\Install-Package AstcSharp -Version 0.9.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AstcSharp" Version="0.9.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AstcSharp" Version="0.9.4" />
                    
Directory.Packages.props
<PackageReference Include="AstcSharp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AstcSharp --version 0.9.4
                    
#r "nuget: AstcSharp, 0.9.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AstcSharp@0.9.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AstcSharp&version=0.9.4
                    
Install as a Cake Addin
#tool nuget:?package=AstcSharp&version=0.9.4
                    
Install as a Cake Tool

AstcSharp

A C# library for decoding ASTC (Adaptive Scalable Texture Compression) compressed textures.

Overview

ASTC is a lossy block-based texture compression format designed for real-time graphics applications. It provides flexible compression rates and quality levels, making it ideal for mobile and embedded GPU platforms.

AstcSharp is a pure C# implementation of the ASTC decompression algorithm, allowing you to decode ASTC-compressed textures to RGBA8888 format.

Features

  • Decode ASTC compressed data to RGBA8888 format
  • Support for all standard ASTC block footprints (4x4, 5x4, 5x5, 6x5, 6x6, 8x5, 8x6, 8x8, 10x5, 10x6, 10x8, 10x10, 12x10, 12x12)
  • Load and decode .astc files
  • Clean, minimal public API surface

Installation

dotnet add package AstcSharp

Usage

Decoding ASTC data from a byte array

using AstcSharp;
using AstcSharp.Core;

// Your ASTC compressed data
byte[] astcData = File.ReadAllBytes("texture.astc");

// Image dimensions and block footprint
int width = 512;
int height = 512;
FootprintType footprint = FootprintType.Footprint4x4;

// Decode to RGBA8888
Span<byte> rgbaPixels = AstcDecoder.ASTCDecompressToRGBA(
    astcData,
    width,
    height,
    footprint
);

// rgbaPixels now contains width * height * 4 bytes in RGBA order

Decoding an ASTC file

using AstcSharp;
using AstcSharp.IO;

// Load an ASTC file (includes header with dimensions and footprint)
byte[] fileData = File.ReadAllBytes("texture.astc");
AstcFile astcFile = AstcFile.FromMemory(fileData);

// Decode to RGBA8888
Span<byte> rgbaPixels = AstcDecoder.DecompressToImage(astcFile);

Future improvements

  • Improved performance
  • HDR support
  • Encoding

References

This implementation is based on:

License

See LICENSE for details.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.9.8 89 2/24/2026
0.9.7 94 2/23/2026
0.9.6 107 2/4/2026
0.9.5 91 2/4/2026
0.9.4 103 2/3/2026
0.9.3 96 2/3/2026