示例#1
0
        public ImagePsd(string p_FileFullPath)
        {
            if (!File.Exists(p_FileFullPath))
            {
                return;
            }
            FileStream _PSD = File.Open(p_FileFullPath, FileMode.Open);

            byte[] _HeadByte = new byte[26];
            _PSD.Read(_HeadByte, 0, 26);
            m_Head       = new PSDHEAD(_HeadByte);
            m_ColorModel = new ColorModel(_PSD);

            long _ReadCount = _PSD.Position;

            while (true)
            {
                BIM _Bim = new BIM(_PSD);
                if (!_Bim.Read || _PSD.Position - _ReadCount >= m_ColorModel.BIMSize)
                {
                    break;
                }
                m_8BIMList.Add(_Bim);
            }
            m_LayerMaskInfo = new LayerMaskInfo(_PSD);
            m_ImageData     = new ImageData(_PSD, m_Head);
            if (m_Head.ColorMode == 2)
            {
                m_ImageData.PSDImage.Palette = m_ColorModel.ColorData;
            }
            _PSD.Close();
        }
示例#2
0
 public void NewPsd()
 {
     m_Head          = new PSDHEAD(new byte[] { 0x38, 0x42, 0x50, 0x53, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x2C, 0x00, 0x00, 0x01, 0xB4, 0x00, 0x08, 0x00, 0x03 });
     m_ColorModel    = new ColorModel();
     m_ImageData     = new ImageData();
     m_LayerMaskInfo = new LayerMaskInfo();
 }
示例#3
0
            public ImageData(FileStream p_FileStream, PSDHEAD p_HeaderInfo)
            {
                m_HeaderInfo = p_HeaderInfo;
                byte[] _ShortBytes = new byte[2];
                p_FileStream.Read(_ShortBytes, 0, 2);
                Array.Reverse(_ShortBytes);
                p_Type = BitConverter.ToUInt16(_ShortBytes, 0);
                switch (p_Type)
                {
                case 0:     //RAW DATA
                    RawData(p_FileStream);
                    break;

                case 1:
                    RleData(p_FileStream);
                    break;

                default:
                    throw new Exception("Type =" + p_Type.ToString());
                }
            }