public async Task <WriteableBitmap> GetImage(MappedFrame frame) { var key = $"{frame.Camera}:{frame.Frame}"; if (!_images.ContainsKey(key)) { var camera = _camers[frame.Camera]; _images[key] = await(await ImageLoader.Create(camera)).GetImage(frame); } return(_images[key]); }
public bool AddPoint(Point currentPoint) { var result = false; if (PreviousFrame == null) { PreviousFrame = new MappedFrame { Point = currentPoint }; result = true; } else { var x1 = PreviousFrame.Point.X; var y1 = PreviousFrame.Point.Y; var x2 = currentPoint.X; var y2 = currentPoint.Y; var frame = (int)((x2 * frameCount) / width) + 2; var camera = (int)((y2 * cameraCount) / height); var distance = PreviousFrame.Point.GetDistance(currentPoint); if (frame != PreviousFrame.Frame || camera != PreviousFrame.Camera) { var mappedFrame = new MappedFrame { Speed = distance / (DateTime.UtcNow - PreviousFrame.MappedTime).TotalSeconds, ViewTime = (DateTime.UtcNow - PreviousFrame.MappedTime).TotalMilliseconds, Point = currentPoint, Camera = camera, Frame = frame }; PreviousFrame = mappedFrame; frames.Add(mappedFrame); result = true; } } return(result); }
public async Task <WriteableBitmap> GetImage(MappedFrame frame) { var file = await _cameraFolder.OpenStreamForReadAsync($"{frame.Frame:D2}.jpg"); return(await GetImage(file.AsRandomAccessStream())); }