コード例 #1
0
ファイル: StciLoader.cs プロジェクト: egorovav/Ja2Project
        private StciIndexed LoadStciIndexed(BinaryReader aReader, Ja2Data.StciHeader aHeader)
        {
            StciIndexed _newStciIndexed = new StciIndexed();

            Ja2Data.StciIndexed _stciIndexed = new Ja2Data.StciIndexed(aHeader);
            _stciIndexed.Load(aReader);

            Ja2Data.StciIndexedHeader _subHeader = (Ja2Data.StciIndexedHeader)aHeader.SubHeader;

            _newStciIndexed.BlueDepth         = _subHeader.BlueDepth;
            _newStciIndexed.GreenDepth        = _subHeader.GreenDepth;
            _newStciIndexed.NumberOfColours   = _subHeader.NumberOfColous;
            _newStciIndexed.NumberOfSubImages = (int)_subHeader.NumberOfSubImages;
            _newStciIndexed.RedDepth          = _subHeader.RedDepth;
            _newStciIndexed.Unused            = _subHeader.Unused;

            _newStciIndexed.DateCreated = DateTime.Now;
            _newStciIndexed.UserId      = this.FUserId;

            _newStciIndexed.Palette = _stciIndexed.Palette;

            for (int i = 0; i < _subHeader.NumberOfSubImages; i++)
            {
                StciIndexedSubImage _subImage = this.LoadSubImage(_stciIndexed.Images[i]);
                _subImage.StciIndexed = _newStciIndexed;
                this.FSubImages.Add(_subImage);
            }

            return(_newStciIndexed);
        }
コード例 #2
0
ファイル: Ja2DataAccess.cs プロジェクト: egorovav/Ja2Project
        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);
        }
コード例 #3
0
ファイル: StciLoader.cs プロジェクト: egorovav/Ja2Project
        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);
        }