/// <summary> /// Converts this image to an RGBA image with the palette provided. /// </summary> /// <param name="palette">The palette to convert with.</param> /// <returns>The RGBA image.</returns> public RgbaImage ToColor(Palette palette) { PaletteLayer paletteLayer = palette.Default; Color[] pixels = new Color[Area]; for (int i = 0; i < Area; i++) { // TODO: Could we extend the palette by 1 and set it to be transparent to avoid branching *every* pixel? short index = Indices[i]; Color color = index == TransparentIndex ? RgbaImage.Transparent : paletteLayer[index]; pixels[i] = color; } RgbaImage image = RgbaImage.From(Width, Height, pixels).Value; image.Namespace = Namespace; image.Offset = Offset; return(image); }