private void RefreshImageAVS() { string tmp = GetTempFileName(); AVSTextBox a = GetAVSTextBox(tabControl.SelectedIndex); a.SaveFile(tmp, RichTextBoxStreamType.PlainText); try { File.SetAttributes(tmp, FileAttributes.Hidden); } catch { } try { TabPage t = (TabPage)tabControl.Controls[tabControl.SelectedIndex]; int k = t.Handle.ToInt32(); AviSynthScriptEnvironment env = new AviSynthScriptEnvironment(); AviSynthClip clip = env.OpenScriptFile(tmp); if (AVSEnvironments.ContainsKey(k)) AVSEnvironments.Remove(k); AVSEnvironments.Add(k, env); if (AVSClips.ContainsKey(k)) { AviSynthClip old_clip = (AviSynthClip)AVSClips[k]; old_clip.cleanup(false); AVSClips.Remove(k); } AVSClips.Add(k, clip); if (AVSActualFrames.ContainsKey(k)) AVSActualFrames.Remove(k); AVSActualFrames.Add(k, 0); DateTime inicio = DateTime.Now; PictureBox p = GetPictureBox(tabControl.SelectedIndex); Bitmap frame = AviSynthFunctions.getBitmapFromFrame(clip, 0, 0); p.Size = frame.Size; p.Image = frame; DateTime fin = DateTime.Now; TimeSpan tiempo = fin - inicio; int t_millis = tiempo.Milliseconds; label1.Text = "Tiempo de carga: " + t_millis.ToString() + "ms"; updateFromAviSynthClip(clip); /* int tiempo_est = (t_millis * clip.num_frames); long ticks = tiempo_est * 10000000; TimeSpan t_est = new TimeSpan(ticks); label2.Text = "Tiempo estimado: " + t_est.ToString(); */ } catch (AviSynthException ase) { mW.errorMsg(ase.Message); } }