示例#1
0
文件: Layer.cs 项目: 3eqp/PhotoEditor
        public List <byte> ToBytes()
        {
            List <byte> result = new List <byte>();

            result.AddRange(LayerName.ToBytes());
            result.AddRange(LayerPosition.ToBytes());
            if (LayerBmpFrame == null)
            {
                result.AddRange(BitConverter.GetBytes((Int32)0));
            }
            else
            {
                result.AddRange(BitConverter.GetBytes((Int32)LayerBmpFrame.PixelWidth));
                result.AddRange(BitConverter.GetBytes((Int32)LayerBmpFrame.PixelHeight));

                int    stride = LayerBmpFrame.PixelWidth * (LayerBmpFrame.Format.BitsPerPixel / 8);
                byte[] data   = new byte[LayerBmpFrame.PixelHeight * stride];

                result.AddRange(BitConverter.GetBytes((Int32)data.Length));

                LayerBmpFrame.CopyPixels(data, stride, 0);
                result.AddRange(data);
            }
            return(result);
        }