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(); }
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(); }
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()); } }