public static void WritePal(this byte[] data, int destOffset, MPalette pal)
 {
     for (int i = 0; i < pal.ColorCount; i++)
     {
         data.WriteColor(destOffset, pal.GetColorAt(i), i);
     }
 }
        public static void CopyPalette(this Bitmap bmp, MPalette pal, bool transparent)
        {
            ColorPalette cp = bmp.Palette;

            for (int i = 0; i < Math.Min(256, pal.ColorCount); i++)
            {
                cp.Entries[i] = pal.GetColorAt(i);
            }
            for (int i = Math.Min(256, pal.ColorCount); i < 256; i++)
            {
                cp.Entries[i] = Color.Black;
            }

            if (transparent)
            {
                cp.Entries[0] = Color.Transparent;
            }

            bmp.Palette = cp;
        }