private StciRgb LoadStciRgb(BinaryReader aReader, Ja2Data.StciHeader aHeader) { StciRgb _newStciRgb = new StciRgb(); Ja2Data.StciRgb _stciRgb = new Ja2Data.StciRgb(aHeader); Ja2Data.StciRgbHeader _subHeader = (Ja2Data.StciRgbHeader)_stciRgb.Header.SubHeader; _newStciRgb.AlphaDepth = _subHeader.AlphaDepth; _newStciRgb.AlphaMask = (int)_subHeader.AlphaMask; _newStciRgb.BlueDepth = _subHeader.BlueDepth; _newStciRgb.BlueMask = (int)_subHeader.BlueMask; _newStciRgb.GreenDepth = _subHeader.GreenDepth; _newStciRgb.GreenMask = (int)_subHeader.GreenMask; _newStciRgb.RedDepth = _subHeader.RedDepth; _newStciRgb.RedMask = (int)_subHeader.RedMask; _newStciRgb.DateCreated = DateTime.Now; _newStciRgb.UserId = this.FUserId; int _imageSize = (int)_stciRgb.Header.OriginalImageSize; UnstructuredData _data = new UnstructuredData(); _data.Data = aReader.ReadBytes(_imageSize); _data.UserId = this.FUserId; _data.DateCreated = DateTime.Now; this.FUnstructuredData.Add(_data); _newStciRgb.UnstructuredData = _data; return(_newStciRgb); }
private byte[] DownloadStciRgb(SlfRecordStci aStciRecord, int aDataLength) { Ja2Data.StciHeader _header = DownloadStciHeader(aStciRecord); StciRgb _rgbRec = aStciRecord.StciRgb.First(); Ja2Data.StciRgbHeader _subHeader = new Ja2Data.StciRgbHeader(); _subHeader.AlphaDepth = _rgbRec.AlphaDepth; _subHeader.AlphaMask = (uint)_rgbRec.AlphaMask; _subHeader.BlueDepth = _rgbRec.BlueDepth; _subHeader.BlueMask = (uint)_rgbRec.BlueMask; _subHeader.GreenDepth = _rgbRec.GreenDepth; _subHeader.GreenMask = (uint)_rgbRec.GreenMask; _subHeader.RedDepth = _rgbRec.RedDepth; _subHeader.RedMask = (uint)_rgbRec.RedMask; _header.SubHeader = _subHeader; Ja2Data.StciRgb _stciRgb = new Ja2Data.StciRgb(_header); _stciRgb.ImageData = _rgbRec.UnstructuredData.Data; byte[] _buffer = new byte[aDataLength]; using (MemoryStream _ms = new MemoryStream(_buffer)) { _stciRgb.Save(_ms); } return(_buffer); }
public override int Upload(BinaryReader aReader, int aSlfFileId) { int _count = 0; foreach (Ja2Data.SlfFile.Record _file in this.FFiles) { try { aReader.BaseStream.Position = _file.Offset; SlfRecordHeader _recHeader = this.CreateSlfRecordHeader(_file); this.FHeaders.Add(_recHeader); Ja2Data.StciHeader _stciHeader = new Ja2Data.StciHeader(); _stciHeader.Read(aReader); SlfRecordStci _stciRecord = this.LoadStciHeader(_stciHeader); _stciRecord.SlfRecordHeader = _recHeader; _stciRecord.SlfFileId = aSlfFileId; this.FRecords.Add(_stciRecord); if (_stciHeader.IsIndexed) { StciIndexed _newStciIndexed = this.LoadStciIndexed(aReader, _stciHeader); _newStciIndexed.SlfRecordStci = _stciRecord; this.FRecordsIndexed.Add(_newStciIndexed); } else { StciRgb _newStciRgb = this.LoadStciRgb(aReader, _stciHeader); _newStciRgb.SlfRecordStci = _stciRecord; this.FRecordsRgb.Add(_newStciRgb); } this.AddRecordsToDataSet(); _count += this.SaveChanges(); } catch (Exception _exc) { string _excMess = String.Format("Uploading file {0} exception\n", _file.FileName); throw new Exception(_excMess, _exc); } } return(_count); }