Ejemplo n.º 1
0
        public static CbmImage FromMemory(int width, int height, byte[] data)
        {
            CbmImage image = new CbmImage();

            image.ReplaceWithMemory(width, height, data);

            return(image);
        }
Ejemplo n.º 2
0
        public static CbmImage FromFile(string fileName)
        {
            CbmImage image = new CbmImage();

            image.ReplaceWithFile(fileName);

            return(image);
        }
Ejemplo n.º 3
0
        public static CbmImage FromMemory(int width, int height, byte[] data)
        {
            CbmImage image = new CbmImage();

            image.ReplaceWithMemory(width, height, data);

            return image;
        }
Ejemplo n.º 4
0
        public static CbmImage FromFile(string fileName)
        {
            CbmImage image = new CbmImage();

            image.ReplaceWithFile(fileName);

            return image;
        }
Ejemplo n.º 5
0
        public static CbmFile FromFile(string fileName)
        {
            var cbm = new CbmFile();

            cbm.FileName = fileName;

            FileStream filestream = null;

            try
            {
                filestream = new FileStream(fileName, FileMode.Open, FileAccess.Read);

                using (BinaryReader file = new BinaryReader(filestream, Encoding.ASCII))
                {
                    filestream = null;

                    int count = file.ReadInt32();

                    cbm.currentImageIndex = file.ReadInt32();

                    file.BaseStream.Position += 16;

                    cbm.ImageId = file.ReadInt32();
                    cbm.GroupId = file.ReadInt32();

                    file.BaseStream.Position += 4;

                    if (cbm.currentImageIndex < 0 || cbm.currentImageIndex >= count)
                    {
                        cbm.currentImageIndex = 0;
                    }

                    for (int i = 0; i < count; i++)
                    {
                        var image = new CbmImage();

                        image.Width        = file.ReadInt32();
                        image.Height       = file.ReadInt32();
                        image.IsCompressed = file.ReadInt32() != 0;

                        int dataLength = file.ReadInt32();

                        image.AreaLeft   = file.ReadInt32();
                        image.AreaTop    = file.ReadInt32();
                        image.AreaRight  = file.ReadInt32();
                        image.AreaBottom = file.ReadInt32();

                        file.BaseStream.Position += 4;

                        image.palette16 = new ushort[256];

                        for (int c = 0; c < 256; c++)
                        {
                            image.palette16[c] = (ushort)file.ReadUInt32();
                        }

                        image.palette32 = new uint[256];

                        for (int c = 0; c < 256; c++)
                        {
                            image.palette32[c] = file.ReadUInt32();
                        }

                        image.rawData = file.ReadBytes(dataLength);

                        cbm.Images.Add(image);
                    }
                }
            }
            finally
            {
                if (filestream != null)
                {
                    filestream.Dispose();
                }
            }

            return(cbm);
        }
Ejemplo n.º 6
0
        public static CbmFile FromFile(string fileName)
        {
            var cbm = new CbmFile();

            cbm.FileName = fileName;

            FileStream filestream = null;

            try
            {
                filestream = new FileStream(fileName, FileMode.Open, FileAccess.Read);

                using (BinaryReader file = new BinaryReader(filestream, Encoding.ASCII))
                {
                    filestream = null;

                    int count = file.ReadInt32();

                    cbm.currentImageIndex = file.ReadInt32();

                    file.BaseStream.Position += 16;

                    cbm.ImageId = file.ReadInt32();
                    cbm.GroupId = file.ReadInt32();

                    file.BaseStream.Position += 4;

                    if (cbm.currentImageIndex < 0 || cbm.currentImageIndex >= count)
                    {
                        cbm.currentImageIndex = 0;
                    }

                    for (int i = 0; i < count; i++)
                    {
                        var image = new CbmImage();

                        image.Width = file.ReadInt32();
                        image.Height = file.ReadInt32();
                        image.IsCompressed = file.ReadInt32() != 0;

                        int dataLength = file.ReadInt32();

                        image.AreaLeft = file.ReadInt32();
                        image.AreaTop = file.ReadInt32();
                        image.AreaRight = file.ReadInt32();
                        image.AreaBottom = file.ReadInt32();

                        file.BaseStream.Position += 4;

                        image.palette16 = new ushort[256];

                        for (int c = 0; c < 256; c++)
                        {
                            image.palette16[c] = (ushort)file.ReadUInt32();
                        }

                        image.palette32 = new uint[256];

                        for (int c = 0; c < 256; c++)
                        {
                            image.palette32[c] = file.ReadUInt32();
                        }

                        image.rawData = file.ReadBytes(dataLength);

                        cbm.Images.Add(image);
                    }
                }
            }
            finally
            {
                if (filestream != null)
                {
                    filestream.Dispose();
                }
            }

            return cbm;
        }
Ejemplo n.º 7
0
        private void NewImage_Click(object sender, RoutedEventArgs e)
        {
            var cbm = this.CbmFile;

            if (cbm == null)
            {
                return;
            }

            this.RunBusyAction(disp =>
            {
                var image = new CbmImage();
                cbm.Images.Add(image);

                disp(() => this.CbmFile = this.CbmFile);
                disp(() => this.ImagesList.SelectedIndex = this.ImagesList.Items.Count - 1);
            });
        }