static void SetFrames(List <GifFrame> frames, StreamHelper streamHelper, Stream fs) { foreach (GifFrame f in frames) { List <byte> list = new List <byte>(); if (f.GraphicExtension != null) { list.AddRange(f.GraphicExtension.GetBuffer()); } f.ImageDescriptor.SortFlag = false; f.ImageDescriptor.InterlaceFlag = false; list.AddRange(f.ImageDescriptor.GetBuffer()); if (f.ImageDescriptor.LctFlag) { list.AddRange(f.LocalColorTable); } streamHelper.WriteBytes(list.ToArray()); int transIndex = -1; if (f.GraphicExtension.TransparencyFlag) { transIndex = f.GraphicExtension.TranIndex; } byte[] indexedPixel = GetImagePixels(f.Image, f.LocalColorTable, transIndex); LZWEncoder lzw = new LZWEncoder(indexedPixel, (byte)f.ColorDepth); lzw.Encode(fs); streamHelper.WriteBytes(new byte[] { 0 }); } streamHelper.WriteBytes(new byte[] { 0x3B }); }
static void SetFrames(List<GifFrame> frames,StreamHelper streamHelper,Stream fs) { foreach (GifFrame f in frames) { List<byte> list = new List<byte>(); if (f.GraphicExtension != null) { list.AddRange(f.GraphicExtension.GetBuffer()); } f.ImageDescriptor.SortFlag = false; f.ImageDescriptor.InterlaceFlag = false; list.AddRange(f.ImageDescriptor.GetBuffer()); if (f.ImageDescriptor.LctFlag) { list.AddRange(f.LocalColorTable); } streamHelper.WriteBytes(list.ToArray()); int transIndex = -1; if (f.GraphicExtension.TransparencyFlag) { transIndex = f.GraphicExtension.TranIndex; } byte[] indexedPixel = GetImagePixels(f.Image, f.LocalColorTable, transIndex); LZWEncoder lzw = new LZWEncoder(indexedPixel, (byte)f.ColorDepth); lzw.Encode(fs); streamHelper.WriteBytes(new byte[] { 0 }); } streamHelper.WriteBytes(new byte[] { 0x3B }); }