SaveStream(string filename, double quality, DispatcherQueue queue) : base(queue) { Uri baseUri = new Uri(LayoutPaths.RootDir); Uri relativeUri = new Uri(baseUri, filename); string path = relativeUri.LocalPath; _writer = new BinaryWriter(new FileStream(path, FileMode.Append, FileAccess.Write)); _memory = new MemoryStream(); _port = new SaveStreamPort(); foreach (ImageCodecInfo info in ImageCodecInfo.GetImageEncoders()) { if (info.FormatID == ImageFormat.Jpeg.Guid) { _codec = info; _eps = new EncoderParameters(); _eps.Param[0] = new EncoderParameter( System.Drawing.Imaging.Encoder.Quality, (long)(quality * 100) ); break; } } ActivateHandler(); }
void ShutdownInternalService() { if (_queue != null) { if (_streamPort != null) { _streamPort.Post(new Shutdown()); _streamPort = null; } ResourceManagerPort.Post(new FreeExecutionResource(_queue)); _queue = null; } }
IEnumerator <ITask> ReplaceHandler(Replace replace) { _state = replace.Body; replace.ResponsePort.Post(DefaultReplaceResponseType.Instance); SendNotification(_submgrPort, replace); if (_streamPort != null) { _streamPort.Post(new Shutdown()); _streamPort = null; } if (!string.IsNullOrEmpty(_state.CaptureFile)) { _streamPort = SaveStream.Create(_state.CaptureFile, _state.Quality, _queue); } yield break; }
public void ReplaceHandler(Replace replace) { _state = replace.Body; replace.ResponsePort.Post(DefaultReplaceResponseType.Instance); #if !URT_MINCLR SendNotification(_submgrPort, replace); if (_streamPort != null) { _streamPort.Post(new Shutdown()); _streamPort = null; } if (!string.IsNullOrEmpty(_state.CaptureFile)) { _streamPort = SaveStream.Create(_state.CaptureFile, _state.Quality, _queue); } #else SendNotification(replace); #endif }