Table of Contents

Class BMPParser

Namespace
Map.Loading.Images
Assembly
MapAssembly.dll

High-performance BMP file parser for Paradox map files Supports 24-bit and 32-bit RGB formats commonly used in game maps

public static class BMPParser
Inheritance
object
BMPParser

Methods

CollectUniqueColors(BMPPixelData, Allocator)

Scan all pixels and collect unique RGB values Useful for building province ID mappings

public static NativeHashSet<int> CollectUniqueColors(BMPParser.BMPPixelData pixelData, Allocator allocator)

Parameters

pixelData BMPParser.BMPPixelData
allocator Allocator

Returns

NativeHashSet<int>

ExtractPalette(NativeArray<byte>, BMPHeader)

Extract palette from 8-bit indexed BMP file Returns null if not an 8-bit BMP or no palette present

public static Color32[] ExtractPalette(NativeArray<byte> fileData, BMPParser.BMPHeader header)

Parameters

fileData NativeArray<byte>
header BMPParser.BMPHeader

Returns

Color32[]

ExtractPalette(NativeSlice<byte>, BMPHeader)

Extract palette from 8-bit indexed BMP file Palette is located between info header and pixel data Each palette entry is 4 bytes: BGRA (Blue, Green, Red, Alpha/Reserved)

public static Color32[] ExtractPalette(NativeSlice<byte> fileData, BMPParser.BMPHeader header)

Parameters

fileData NativeSlice<byte>
header BMPParser.BMPHeader

Returns

Color32[]

FindPixelsWithColor(BMPPixelData, int, Allocator)

Find all pixels with a specific RGB color Useful for finding province boundaries

public static NativeList<PixelCoord> FindPixelsWithColor(BMPParser.BMPPixelData pixelData, int targetRGB, Allocator allocator)

Parameters

pixelData BMPParser.BMPPixelData
targetRGB int
allocator Allocator

Returns

NativeList<PixelCoord>

GetPixelData(NativeArray<byte>, BMPHeader)

Get pixel data from BMP file

public static BMPParser.BMPPixelData GetPixelData(NativeArray<byte> fileData, BMPParser.BMPHeader header)

Parameters

fileData NativeArray<byte>
header BMPParser.BMPHeader

Returns

BMPParser.BMPPixelData

GetPixelData(NativeSlice<byte>, BMPHeader)

Get pixel data from BMP file

public static BMPParser.BMPPixelData GetPixelData(NativeSlice<byte> fileData, BMPParser.BMPHeader header)

Parameters

fileData NativeSlice<byte>
header BMPParser.BMPHeader

Returns

BMPParser.BMPPixelData

ParseHeader(NativeArray<byte>)

Parse BMP header from file data

public static BMPParser.BMPHeader ParseHeader(NativeArray<byte> fileData)

Parameters

fileData NativeArray<byte>

Returns

BMPParser.BMPHeader

ParseHeader(NativeSlice<byte>)

Parse BMP header from file data

public static BMPParser.BMPHeader ParseHeader(NativeSlice<byte> fileData)

Parameters

fileData NativeSlice<byte>

Returns

BMPParser.BMPHeader

TryGetPixelRGB(BMPPixelData, int, int, out byte, out byte, out byte)

Get RGB color at specific pixel coordinates Handles 8-bit (grayscale), 24-bit and 32-bit formats

public static bool TryGetPixelRGB(BMPParser.BMPPixelData pixelData, int x, int y, out byte r, out byte g, out byte b)

Parameters

pixelData BMPParser.BMPPixelData
x int
y int
r byte
g byte
b byte

Returns

bool

TryGetPixelRGBPacked(BMPPixelData, int, int, out int)

Get packed RGB color (0xRRGGBB) at specific coordinates

public static bool TryGetPixelRGBPacked(BMPParser.BMPPixelData pixelData, int x, int y, out int rgb)

Parameters

pixelData BMPParser.BMPPixelData
x int
y int
rgb int

Returns

bool