public static string ReloadStci(string aFileName) { IStci _stci = LoadStci(aFileName); using (FileStream _fs = new FileStream(aFileName, FileMode.Create)) _stci.Save(_fs); return(_stci.ToString()); }
public async void Execute(object parameter) { TestViewModel _viewModel = (TestViewModel)parameter; this.IsCanExecute = false; this.IsCanExecute = await Task.Run <bool>(() => { try { _viewModel.StatusString = String.Empty; _viewModel.ResultString = String.Empty; _viewModel.StatusString = String.Empty; int i = 0; string _folderName = Path.Combine( Path.GetDirectoryName(_viewModel.FileName), Path.GetFileNameWithoutExtension(_viewModel.FileName)); Directory.CreateDirectory(_folderName); using (FileStream _input = new FileStream(_viewModel.FileName, FileMode.Open)) { using (BinaryReader _br = new BinaryReader(_input)) { while (_input.Position < _input.Length) { IStci _stci = StciLoader.LoadStci(_input); i++; string _fileName = Path.Combine(_folderName, i.ToString() + ".STI"); using (FileStream _output = new FileStream(_fileName, FileMode.Create)) { _stci.Save(_output); } } } } _viewModel.StatusString = "Done"; } catch (Exception exc) { _viewModel.ErrorString = Common.GetErrorString(exc); } return(true); }); }
private void FLoadSlfWorker_DoWork(object sender, DoWorkEventArgs e) { this.IsBusy = true; try { string _slfFileName = (string)e.Argument; SlfFile _slfFile = new SlfFile(_slfFileName); _slfFile.LoadRecords(); var _jsdRecords = _slfFile.Records.Where(x => x.FileNameExtention.ToLower() == ".jsd"); int _recNum = _jsdRecords.Count(); foreach (SlfFile.Record _record in _jsdRecords) { JsdFileViewModel _jsdFileViewModel = null; MemoryStream _ms = new MemoryStream(_record.Data); JsdFile _jsdFile = JsdFile.Load(_ms); _ms.Close(); _jsdFileViewModel = new JsdFileViewModel(_jsdFile, _record.FileName); SlfFile.Record _stiRecord = _slfFile.Records .Where(x => x.FileName.ToLower() == _record.FileName.ToLower().Replace(".jsd", ".sti")) .SingleOrDefault(); if (_stiRecord != null) { _ms = new MemoryStream(_stiRecord.Data); IStci _stci = StciLoader.LoadStci(_ms); if (_stci.IsIndexed) { _jsdFileViewModel.StciFile = (StciIndexed)_stci; } } this.JsdFilesCount++; this.FLoadSlfWorker.ReportProgress(100 * this.JsdFilesCount / _recNum, _jsdFileViewModel); } } finally { this.IsBusy = false; } }
private static IStci LoadStci(BinaryReader _br, string aFileName) { IStci _stci = null; StciHeader _header = new StciHeader(); _header.Read(_br); if (_header.IsIndexed) { _stci = new StciIndexed(_header, aFileName); _stci.Load(_br); } else { _stci = new StciRgb(_header, aFileName); _stci.Load(_br); } return(_stci); }
public JsdFileViewModel LoadJsdFile(string aFile) { FileStream _fs = new FileStream(aFile, FileMode.Open); JsdFile _jsdFile = JsdFile.Load(_fs); _fs.Close(); string _fileName = String.Empty; if (this.FolderName != String.Empty) { _fileName = aFile.Replace(this.FolderName, String.Empty); } else { _fileName = Path.GetFileName(aFile); } JsdFileViewModel _jsdFileViewModel = new JsdFileViewModel(_jsdFile, _fileName); _jsdFileViewModel.FullFileName = aFile; string _stiFileName = Path.ChangeExtension(aFile, ".sti"); if (File.Exists(_stiFileName)) { _fs = new FileStream(_stiFileName, FileMode.Open); IStci _stci = StciLoader.LoadStci(_fs); _fs.Close(); if (_stci.IsIndexed) { _jsdFileViewModel.StciFile = (StciIndexed)_stci; } } return(_jsdFileViewModel); }
public static IStci LoadStci(string aFileName) { using (FileStream _fs = new FileStream(aFileName, FileMode.Open)) { using (BinaryReader _br = new BinaryReader(_fs)) { IStci _stci = null; StciHeader _header = new StciHeader(); _header.Read(_br); if (_header.IsIndexed) { _stci = new StciIndexed(_header, aFileName); _stci.Load(_br); } else { _stci = new StciRgb(_header, aFileName); _stci.Load(_br); } return(_stci); } } }
private ImageSource GetGlobalMapImagefFromSti(string aFileName) { string _path = Path.Combine(this.FGlobalMapsFolder, aFileName); IStci _sti = null; if (File.Exists(_path)) { using (FileStream input = new FileStream(_path, FileMode.Open, FileAccess.Read)) _sti = StciLoader.LoadStci(input); } else { if (this.SlfFile != null) { SlfFile.Record _record = this.SlfFile.Records .SingleOrDefault(x => x.FileName.ToUpperInvariant() == aFileName.ToUpperInvariant()); if (_record != null) { using (MemoryStream input = new MemoryStream(_record.Data)) _sti = StciLoader.LoadStci(input); } } } if (_sti == null) { ImageSourceConverter _isc = new ImageSourceConverter(); ImageSource _is = (ImageSource)_isc.ConvertFromString("MAP_STUB.bmp"); return(_is); } else if (_sti is StciIndexed) { StciIndexed _stciIndexed = (StciIndexed)_sti; List <Color> _palette = _stciIndexed.ColorPalette .Select(x => new Color() { A = 255, R = x.Red, G = x.Green, B = x.Blue }) .ToList(); StciSubImage _subImage = _stciIndexed.Images[0]; StructureImage _image = new StructureImage(_subImage, _palette); BitmapPalette _pb = new BitmapPalette(_palette); PixelFormat _pf = PixelFormats.Indexed8; BitmapSource _bitmap = BitmapSource.Create( _subImage.Header.Width, _subImage.Header.Height, 96, 96, _pf, _pb, _subImage.ImageData, _subImage.Header.Width * _pf.BitsPerPixel / 8); return(_bitmap); } else if (_sti is StciRgb) { StciRgb _stciRgb = (StciRgb)_sti; PixelFormat _pf = PixelFormats.Bgr565; BitmapSource _bitmap = BitmapSource.Create( _stciRgb.Header.ImageWidth, _stciRgb.Header.ImageHeight, 96, 96, _pf, null, _stciRgb.ImageData, _stciRgb.Header.ImageWidth * _pf.BitsPerPixel / 8); return(_bitmap); } return(null); }