public static CbmImage FromMemory(int width, int height, byte[] data) { CbmImage image = new CbmImage(); image.ReplaceWithMemory(width, height, data); return(image); }
public static CbmImage FromFile(string fileName) { CbmImage image = new CbmImage(); image.ReplaceWithFile(fileName); return(image); }
public static CbmImage FromMemory(int width, int height, byte[] data) { CbmImage image = new CbmImage(); image.ReplaceWithMemory(width, height, data); return image; }
public static CbmImage FromFile(string fileName) { CbmImage image = new CbmImage(); image.ReplaceWithFile(fileName); return image; }
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); }
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; }
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); }); }