private void Uninitialize() { _initialized = false; if (_timer != null) { _timer.Stop(); _timer.Tick -= DispatcherTimer_Tick; _timer = null; } if (_renderer != null) { _renderer.Dispose(); _renderer = null; } if (_effect != null) { _effect.Dispose(); _effect = null; } _filters = null; _chromaKeyFilter = null; _rotationFilter = null; _bitmap = null; if (_source != null) { _source.Dispose(); _source = null; } }
/// <summary> /// Renders the given buffer with the applied filters to an output /// buffer and returns it. Meant to be used where the filtered image /// is, for example, going to be saved to a file. /// </summary> /// <param name="buffer">The buffer containing the original image data.</param> /// <returns>Buffer containing the filtered image data.</returns> public virtual async Task <IBuffer> RenderJpegAsync(IBuffer buffer) { if (buffer == null || buffer.Length == 0) { Debug.WriteLine(DebugTag + Name + ": RenderJpegAsync(): The given buffer is null or empty!"); return(null); } if (_effect != null) { _effect.Dispose(); _effect = null; } // Construct the FilterEffect instance and set the // filters. _effect = new FilterEffect(_source); SetFilters(_effect); IBuffer outputBuffer; using (var source = new BufferImageSource(buffer)) { var effect = new FilterEffect(source); SetFilters(effect); using (var renderer = new JpegRenderer(effect)) { outputBuffer = await renderer.RenderAsync(); } effect.Dispose(); } return(outputBuffer); }
/// <summary> /// From IDisposable. /// </summary> public void Dispose() { System.Diagnostics.Debug.WriteLine("Disposing effect."); if (_source != null) { _source.Dispose(); _source = null; } if (_effect != null) { _effect.Dispose(); _effect = null; } }
private void Uninitialize() { if (_cameraPreviewImageSource != null) { _cameraPreviewImageSource.Dispose(); _cameraPreviewImageSource = null; } if (_filterEffect != null) { _filterEffect.Dispose(); _filterEffect = null; } if (_customEffect != null) { _customEffect.Dispose(); _customEffect = null; } }
private void EndSession() { if (_renderer != null) { _renderer.Dispose(); _renderer = null; } if (_filterEffect != null) { _filterEffect.Dispose(); _filterEffect = null; } if (_source != null) { _source.Dispose(); _source = null; } _reframingFilter = null; _info = null; }
/// <summary> /// Renders the given buffer with the applied filters to an output /// buffer and returns it. Meant to be used where the filtered image /// is, for example, going to be saved to a file. /// </summary> /// <param name="buffer">The buffer containing the original image data.</param> /// <returns>Buffer containing the filtered image data.</returns> public virtual async Task<IBuffer> RenderJpegAsync(IBuffer buffer) { if (buffer == null || buffer.Length == 0) { Debug.WriteLine(DebugTag + Name + ": RenderJpegAsync(): The given buffer is null or empty!"); return null; } if (_effect != null) { _effect.Dispose(); _effect = null; } // Construct the FilterEffect instance and set the // filters. _effect = new FilterEffect(_source); SetFilters(_effect); IBuffer outputBuffer; using (var source = new BufferImageSource(buffer)) { var effect = new FilterEffect(source); SetFilters(effect); using (var renderer = new JpegRenderer(effect)) { outputBuffer = await renderer.RenderAsync(); } effect.Dispose(); } return outputBuffer; }