private void btnStop_Click(object sender, EventArgs e) { VSP.SignalToStop(); VSP.WaitForStop(); btnStart.Enabled = true; btnStop.Enabled = false; btnSnapshot.Enabled = false; btnTimer.Enabled = false; timer1.Enabled = false; lblDebug.Text = "Preview stopped"; VSP.Visible = true; lblCntDwn.Text = "Disabled"; countDown = spanOfShots; }
private void btnStart_Click(object sender, EventArgs e) { src = new VideoCaptureDevice(devs[0].MonikerString); VSP.VideoSource = src; VideoCapabilities[] VCap = src.VideoCapabilities; picHeight = VCap[0].FrameSize.Height; picWidth = VCap[0].FrameSize.Width; VSP.Start(); lblDebug.Text = "Preview startd, resolution = " + picWidth.ToString() + "X" + picHeight.ToString(); threshold = picWidth * picHeight * 20; btnStart.Enabled = false; btnStop.Enabled = true; btnSnapshot.Enabled = true; btnTimer.Enabled = true; }
private void sayCheese() { Bitmap snapshot = new Bitmap(640, 480); string strFilename = "P" + DateTime.Now.Year.ToString(); if (DateTime.Now.Month.ToString().Length == 1) { strFilename += "0" + DateTime.Now.Month.ToString(); } else { strFilename += DateTime.Now.Month.ToString(); } if (DateTime.Now.Day.ToString().Length == 1) { strFilename += "0" + DateTime.Now.Day.ToString(); } else { strFilename += DateTime.Now.Day.ToString(); } if (DateTime.Now.Hour.ToString().Length == 1) { strFilename += "0" + DateTime.Now.Hour.ToString(); } else { strFilename += DateTime.Now.Hour.ToString(); } if (DateTime.Now.Minute.ToString().Length == 1) { strFilename += "0" + DateTime.Now.Minute.ToString(); } else { strFilename += DateTime.Now.Minute.ToString(); } if (DateTime.Now.Second.ToString().Length == 1) { strFilename += "0" + DateTime.Now.Second.ToString(); } else { strFilename += DateTime.Now.Second.ToString(); } strFilename += ".jpg"; string strAdded = DateTime.Now.Year.ToString() + "-"; if (DateTime.Now.Month.ToString().Length == 1) { strAdded += "0" + DateTime.Now.Month.ToString() + "-"; } else { strAdded += DateTime.Now.Month.ToString() + "-"; } if (DateTime.Now.Day.ToString().Length == 1) { strAdded += "0" + DateTime.Now.Day.ToString() + " "; } else { strAdded += DateTime.Now.Day.ToString() + " "; } if (DateTime.Now.Hour.ToString().Length == 1) { strAdded += "0" + DateTime.Now.Hour.ToString() + ":"; } else { strAdded += DateTime.Now.Hour.ToString() + ":"; } if (DateTime.Now.Minute.ToString().Length == 1) { strAdded += "0" + DateTime.Now.Minute.ToString() + ":"; } else { strAdded += DateTime.Now.Minute.ToString() + ":"; } if (DateTime.Now.Second.ToString().Length == 1) { strAdded += "0" + DateTime.Now.Second.ToString(); } else { strAdded += DateTime.Now.Second.ToString(); } if (VSP.IsRunning) { snapshot = VSP.GetCurrentVideoFrame(); Graphics g = Graphics.FromImage(snapshot); RectangleF rectf = new RectangleF(10, 10, 300, 20); g.SmoothingMode = SmoothingMode.AntiAlias; g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.PixelOffsetMode = PixelOffsetMode.HighQuality; g.DrawString(strAdded, new Font("Courier New", 12), Brushes.Red, rectf); g.Flush(); snapshot.Save(strPath + strFilename, System.Drawing.Imaging.ImageFormat.Jpeg); g.Dispose(); } snapshot.Dispose(); //compare this snapshot to last one, targeting on removing the old one if there is actually no difference if (lastFileName == "") { lastFileName = strFilename; } else { bool isAlmostSame = almostSame(strPath + lastFileName, strPath + strFilename); if (!isAlmostSame) { lastFileName = strFilename; //shorten the span of snapshots if the sanpshot is different with preview one spanOfShots = 5; } else { spanOfShots = 10; try { File.Delete(strPath + strFilename); // delete this snapshot if this one is almost identical to the preview one } catch { } } } }
private void frmMain_FormClosing(object sender, FormClosingEventArgs e) { VSP.SignalToStop(); VSP.WaitForStop(); }
public Map(string fname, RpgController rpgController) { scriptHandler = new MapScriptHandler(fname, this, rpgController); Stream s = ResourceManager.Open(fname); BinaryReader br = new BinaryReader(s); //signature string str = StringBufferReader.read(s,6); if(str != "V3MAP") throw new NotAMapFileException(fname); //version int version = br.ReadInt32(); if(version != 2) throw new MapFileBrokenException("Wrong version; expected 2; received " + version.ToString(),fname); try { //vc offset (skipped) br.ReadInt32(); //mapname,vspname,musicname,renderstring,startupscript name = StringBufferReader.read(s,256); vspfile = StringBufferReader.read(s,256); musicfile = StringBufferReader.read(s,256); rstring = StringBufferReader.read(s,256); initscript = StringBufferReader.read(s,256); //startloc start.X = br.ReadInt16(); start.Y = br.ReadInt16(); //layers int numLayers = br.ReadInt32(); layers = new TileLayer[numLayers]; for(int i=0;i<numLayers;i++) { TileLayer tl = layers[i] = new TileLayer(); tl.loadFromv32stream(br); } width = layers[0].width; height = layers[0].height; //special layers logicalLayer = new LogicalLayer(width,height); logicalLayer.obs = new Layer(); logicalLayer.obs.loadSpecialFromv32stream(8,width,height,br); logicalLayer.zone = new Layer(); logicalLayer.zone.loadSpecialFromv32stream(16,width,height,br); //zones int numZonedefs = br.ReadInt32(); zonedefs = new Zonedef[numZonedefs]; for(int i=0;i<numZonedefs;i++) { zonedefs[i] = new Zonedef(); zonedefs[i].name = StringBufferReader.read(s,256); zonedefs[i].script = StringBufferReader.read(s,256); zonedefs[i].percent = br.ReadByte(); zonedefs[i].delay = br.ReadByte(); zonedefs[i].method = br.ReadByte(); } //entities int numEntdefs = br.ReadInt32(); entdefs = new Entdef[numEntdefs]; for(int i=0;i<numEntdefs;i++) { entdefs[i] = new Entdef(); entdefs[i].index = i; entdefs[i].x = br.ReadInt16(); entdefs[i].y = br.ReadInt16(); entdefs[i].facing = (Directions)br.ReadByte(); if(entdefs[i].facing == Directions.None) entdefs[i].facing = Directions.s; entdefs[i].obstructable = br.ReadByte()==1; entdefs[i].obstruction = br.ReadByte()==1; entdefs[i].autoface = br.ReadByte()==1; entdefs[i].speed = br.ReadInt16(); //convert this to carot ticks? br.ReadByte();//activation mode entdefs[i].mode = br.ReadByte(); entdefs[i].x1 = br.ReadInt16(); entdefs[i].y1 = br.ReadInt16(); entdefs[i].x2 = br.ReadInt16(); entdefs[i].y2 = br.ReadInt16(); entdefs[i].wanderDelay = br.ReadInt16();//convert this to carot ticks? br.ReadInt32();//wtf? entdefs[i].moveScript = StringBufferReader.read(s,256); entdefs[i].chrname = StringBufferReader.read(s,256); entdefs[i].descr = StringBufferReader.read(s,256); entdefs[i].script = StringBufferReader.read(s,256); } } catch(Exception e) { throw new MapFileBrokenException("Something is wrong with the mapfile. Here's what happened:\n" + e.Message,fname); } //load up the vsp try { vsp = new VSP(Lib.GetAccompanyingFilePath(fname,vspfile)); } catch(FileNotFoundException e) {throw new VspFileNotFoundException(e.Message); } br.Close(); }