Exemplo n.º 1
0
 public void RepackImage(byte[] img, int l)
 {
     if (data[0] != (byte)'P' || data[1] != (byte)'K' || data[2] != (byte)l || data[3] != (byte)(l >> 8))
     {
         l       = PackDepack.Pack(img, l, data, 4);
         data[0] = (byte)'P';
         data[1] = (byte)'K';
         data[2] = (byte)l;
         data[3] = (byte)(l >> 8);
         Array.Resize(ref data, l);
     }
 }
Exemplo n.º 2
0
        private void DepactPK()
        {
            byte[] Palette = new byte[0x100];

            // Valeurs par défaut
            cpcPlus = false;
            nbCol   = 80;
            nbLig   = 200;

            //
            //PKSL -> 320x200 STD
            //PKS3 -> 320x200 Mode 3
            //PKSP -> 320x200 PLUS
            //PKVL -> Overscan STD
            //PKVP -> Overscan PLUS
            //

            cpcPlus = (bmpCpc[3] == 'P') || (bmpCpc[2] == 'O');
            bool Overscan = (bmpCpc[2] == 'V') || (bmpCpc[3] == 'V');
            bool Std      = (bmpCpc[2] == 'S' && bmpCpc[3] == 'L');

            if (Std)
            {
                for (int i = 0; i < 17; i++)
                {
                    Palette[i] = bmpCpc[i + 4];
                }
            }

            PackDepack.Depack(bmpCpc, Std ? 21 : 4, bufTmp);
            System.Array.Copy(bufTmp, bmpCpc, 0x10000);
            if (Overscan)
            {
                nbCol = maxColsCpc;
                nbLig = maxLignesCpc;
                SetPalette(bmpCpc, 0x600, cpcPlus);
            }
            else
            {
                if (Std)
                {
                    SetPalette(Palette, 0, cpcPlus);
                }
                else
                {
                    SetPalette(bmpCpc, 0x17D0, cpcPlus);
                }
            }
        }
Exemplo n.º 3
0
        public void GetImage(byte[] dest, int[] p)
        {
            int l = data.Length;

            if (data[0] == (byte)'P' && data[1] == (byte)'K' && data[2] == (byte)l && data[3] == (byte)(l >> 8))
            {
                PackDepack.Depack(data, 4, dest);
            }
            else
            {
                Array.Copy(data, dest, data.Length);
            }

            pal.SendPalette(p);
        }