コード例 #1
0
        public override async Task <bool> DoWork(WorkItem triggeredWorkItem)
        {
            if (_cacheMode == CacheMode.Capture)
            {
                lock (_cache)
                {
                    Logger.Info("Check if screenshot should be cached");

                    long ticksNow = DateTime.Now.Ticks;

                    TrimCache(ticksNow);

                    if (_ticksLastItemCached < (ticksNow - TICKS_TO_WAIT))
                    {
                        _ticksLastItemCached = ticksNow;
                        ImageCacheItem cacheItem = new ImageCacheItem();
                        cacheItem.TickTimeTaken = ticksNow;
                        Bitmap i = RenderImage.BitmapFromBmpByteArray((byte[])triggeredWorkItem.WorkItemContext);

                        cacheItem.ImageTaken       = i;
                        cacheItem.RegionWithMotion = Program.MotionDetectionWorker.GetMovingRegion(i);

                        //string text = OcrHelperWindows.GetFullTextFromImage(i).GetAwaiter().GetResult();
                        //cacheItem.TextEmbeddingOfScreen = Embeddings.GetEmbeddingFromText(text).GetAwaiter().GetResult();


                        _cache.Add(cacheItem);
                    }
                }
            }

            return(true);
        }
コード例 #2
0
        public override async Task <bool> DoWork(WorkItem triggeredWorkItem)
        {
            Logger.Info("Generate the snapshot matrix");
            Bitmap i = RenderImage.BitmapFromBmpByteArray((byte[])triggeredWorkItem.WorkItemContext);

            _thisSnapshot = new SensorSnapshot(SENSOR_HORIZONTAL, SENSOR_VERTICAL);
            _thisSnapshot.TakeSnapshot(i);

            if (_lastSnapshot != null)
            {
                _delta.Update(_lastSnapshot, _thisSnapshot);
            }

            //Do stuff
            _lastSnapshot = _thisSnapshot;
            _thisSnapshot = null;

            return(true);
        }