Beispiel #1
0
        public AutoCrop(string filename, UserSettings settings, ref CropInfo cropInfo)
        {
            InitializeComponent();
            try
            {
                this.settings = settings;
                this.cropInfo = cropInfo;
                AviSynthScriptEnvironment asse = new AviSynthScriptEnvironment();
                asc = asse.OpenScriptFile(filename);

                if(asc.HasVideo)
                {
                    System.Drawing.Size s = new Size(asc.VideoWidth, asc.VideoHeight);
                    this.ClientSize = s;                    
                    maxFrames = asc.num_frames;
                    
                    // remove last ~10 minutes
                    if (maxFrames > 30000)
                    {
                        maxFrames -= 15000;
                    }
                    numericUpDownFrame.Maximum = maxFrames;
                    int step = 0;
                    step = maxFrames / nrFrames;
                    curFrame = step;
                    Monitor.Enter(drawLock);
                    bitmap = ReadFrameBitmap(asc, step);
                    bitmapCopy = new Bitmap(bitmap);
                    Monitor.Exit(drawLock);
                }
            }
            catch (Exception ex)
            {
                cropInfo.error = true;
                cropInfo.errorStr = ex.Message;
            }
        }