private StciIndexedSubImage LoadSubImage(Ja2Data.StciSubImage aStciSubImage) { StciIndexedSubImage _subImage = new StciIndexedSubImage(); if (aStciSubImage.AuxData != null) { AuxObjectData _auxData = this.LoadAuxData(aStciSubImage.AuxData); _subImage.AuxObjectData = _auxData; base.FAuxData.Add(_auxData); } UnstructuredData _data = new UnstructuredData(); _data.Data = aStciSubImage.ImageData; _data.UserId = this.FUserId; _data.DateCreated = DateTime.Now; this.FUnstructuredData.Add(_data); _subImage.UnstructuredData = _data; _subImage.DataLength = aStciSubImage.Header.DataLength; _subImage.DataOffset = aStciSubImage.Header.DataOffset; _subImage.Height = aStciSubImage.Header.Height; _subImage.OffsetX = aStciSubImage.Header.OffsetX; _subImage.OffsetY = aStciSubImage.Header.OffsetY; _subImage.Width = aStciSubImage.Header.Width; _subImage.DateCreated = DateTime.Now; _subImage.UserId = this.FUserId; return(_subImage); }
private byte[] DownloadStiIndexed(SlfRecordStci aStciRecord, int aDataLength) { Ja2Data.StciHeader _header = DownloadStciHeader(aStciRecord); StciIndexed _indexedRec = aStciRecord.StciIndexed.First(); Ja2Data.StciIndexedHeader _subHeader = new Ja2Data.StciIndexedHeader((UInt16)_indexedRec.NumberOfSubImages); _subHeader.BlueDepth = _indexedRec.BlueDepth; _subHeader.GreenDepth = _indexedRec.GreenDepth; _subHeader.RedDepth = _indexedRec.RedDepth; _subHeader.NumberOfColous = (uint)_indexedRec.NumberOfColours; _header.SubHeader = _subHeader; Ja2Data.StciSubImage[] _subImages = new Ja2Data.StciSubImage[_indexedRec.NumberOfSubImages]; int i = 0; foreach (StciIndexedSubImage _subImage in _indexedRec.StciIndexedSubImage) { _subImages[i] = this.DownloadStciSubimage(_subImage); i++; } Ja2Data.StciIndexed _stciIndexed = new Ja2Data.StciIndexed(_header, _indexedRec.Palette, _subImages); byte[] _buffer = new byte[aDataLength]; using (MemoryStream _ms = new MemoryStream(_buffer)) { _stciIndexed.Save(_ms); } return(_buffer); }
private Ja2Data.StciSubImage DownloadStciSubimage(StciIndexedSubImage aSubImage) { Ja2Data.StciSubImageHeader _header = new Ja2Data.StciSubImageHeader(); _header.DataLength = (uint)aSubImage.DataLength; _header.DataOffset = (uint)aSubImage.DataOffset; _header.Height = (ushort)aSubImage.Height; _header.OffsetX = (short)aSubImage.OffsetX; _header.OffsetY = (short)aSubImage.OffsetY; _header.Width = (ushort)aSubImage.Width; Ja2Data.StciSubImage _stciSubImage = new Ja2Data.StciSubImage(_header); _stciSubImage.ImageData = aSubImage.UnstructuredData.Data; if (aSubImage.AuxObjectData != null) { _stciSubImage.AuxData = this.DownloadAuxObjectData(aSubImage.AuxObjectData); } return(_stciSubImage); }