/// <summary> /// Создание анимации из файла *.avi (при этом палитра если возможно берется из одноименного файла *.pal) (TODO: поддрежка формата *.gif) /// </summary> /// <param name="file"></param> public void ImportFromFile(string file) { if (!File.Exists(file)) { return; } //Palette = new ushort[0x100]; //Frames = new List<FrameEdit>(); //idxextra = 0x00000000; // хз ClearFrames(); switch (Path.GetExtension(file)) { case ".avi": var filename = Path.Combine(Path.GetDirectoryName(file), Path.GetFileNameWithoutExtension(file)); var avi = new AviManager(filename + ".avi", true); var stream = avi.GetVideoStream(); stream.GetFrameOpen(); var frames = new Bitmap[stream.CountFrames]; for (int pos = 0; pos < stream.CountFrames; ++pos) { frames[pos] = stream.GetBitmap(pos); } stream.GetFrameClose(); avi.Close(); if (File.Exists(filename + ".pal")) { this.GetPalPalette(filename + ".pal"); } else { this.GetImagePalette(frames); } if (Frames == null) { Frames = new List <FrameEdit>(); } foreach (var frame in frames) { Frames.Add(new FrameEdit(frame, FrameEdit.GetSingleRect(frame), Palette, frame.Width / 2, -frame.Height / 4)); } //this.AddFrame(frame); break; case ".gif": throw new NotImplementedException(); break; default: throw new FileFormatException(); } }