ScreenToGif/ImageUtil/Decoder/GifFile.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace ScreenToGif.ImageUtil.Decoder
{
public enum FrameDisposalMethod
{
None = 0,
DoNotDispose = 1,
RestoreBackground = 2,
RestorePrevious = 3
}
public class FrameMetadata
{
public int Left { get; set; }
public int Top { get; set; }
public int Width { get; set; }
public int Height { get; set; }
public TimeSpan Delay { get; set; }
public FrameDisposalMethod DisposalMethod { get; set; }
}
public class GifFile
{
public GifHeader Header { get; private set; }
public GifColor[] GlobalColorTable { get; set; }
public IList<GifFrame> Frames { get; set; }
public IList<GifExtension> Extensions { get; set; }
public ushort RepeatCount { get; set; }
private GifFile()
{
}
internal static GifFile ReadGifFile(Stream stream, bool metadataOnly)
{
var file = new GifFile();
file.Read(stream, metadataOnly);
return file;
}
private void Read(Stream stream, bool metadataOnly)
{
Header = GifHeader.ReadHeader(stream);
if (Header.LogicalScreenDescriptor.HasGlobalColorTable)
{
GlobalColorTable = GifHelpers.ReadColorTable(stream, Header.LogicalScreenDescriptor.GlobalColorTableSize);
}
ReadFrames(stream, metadataOnly);
var netscapeExtension = Extensions.OfType<GifApplicationExtension>()
.FirstOrDefault(GifHelpers.IsNetscapeExtension);
if (netscapeExtension != null)
RepeatCount = GifHelpers.GetRepeatCount(netscapeExtension);
后面还有 46 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
