Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }