AstcSharp 0.9.4
See the version list below for details.
dotnet add package AstcSharp --version 0.9.4
NuGet\Install-Package AstcSharp -Version 0.9.4
<PackageReference Include="AstcSharp" Version="0.9.4" />
<PackageVersion Include="AstcSharp" Version="0.9.4" />
<PackageReference Include="AstcSharp" />
paket add AstcSharp --version 0.9.4
#r "nuget: AstcSharp, 0.9.4"
#:package AstcSharp@0.9.4
#addin nuget:?package=AstcSharp&version=0.9.4
#tool nuget:?package=AstcSharp&version=0.9.4
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:
- ASTC Specification: Khronos Data Format Specification - The official ASTC texture compression format specification
- Google astc-codec: github.com/google/astc-codec
License
See LICENSE for details.
| Product | Versions 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. |
-
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.