public void SetImageAttributes(LoadedImageAttributes parameters) { if (parameters == null) throw new ArgumentNullException("parameters"); m_parameters = parameters; }
/// <summary> /// Decompresses JPEG image to any image described as ICompressDestination /// </summary> /// <param name="jpeg">Stream with JPEG data</param> /// <param name="destination">Stream for output of compressed JPEG</param> public void Decompress(Stream jpeg, IDecompressDestination destination) { if (jpeg == null) { throw new ArgumentNullException("jpeg"); } if (destination == null) { throw new ArgumentNullException("destination"); } beforeDecompress(jpeg); // Start decompression m_decompressor.jpeg_start_decompress(); LoadedImageAttributes parameters = getImageParametersFromDecompressor(); destination.SetImageAttributes(parameters); destination.BeginWrite(); /* Process data */ while (m_decompressor.Output_scanline < m_decompressor.Output_height) { byte[][] row = jpeg_common_struct.AllocJpegSamples(m_decompressor.Output_width * m_decompressor.Output_components, 1); m_decompressor.jpeg_read_scanlines(row, 1); destination.ProcessPixelsRow(row[0]); } destination.EndWrite(); // Finish decompression and release memory. m_decompressor.jpeg_finish_decompress(); }
public void SetImageAttributes(LoadedImageAttributes parameters) { m_jpegImage.Width = parameters.Width; m_jpegImage.Height = parameters.Height; m_jpegImage.BitsPerComponent = 8; m_jpegImage.ComponentsPerSample = (byte)parameters.ComponentsPerSample; m_jpegImage.Colorspace = parameters.Colorspace; }
public void SetImageAttributes(LoadedImageAttributes parameters) { if (parameters == null) { throw new ArgumentNullException("parameters"); } m_parameters = parameters; }
public void SetImageAttributes(LoadedImageAttributes parameters) { if (parameters.Width > Image.MaxWidth || parameters.Height > Image.MaxHeight) { throw new ArgumentOutOfRangeException( $"The input jpg '{ parameters.Width }x{ parameters.Height }' is bigger then the max allowed size '{ Image.MaxWidth }x{ Image.MaxHeight }'"); } m_jpegImage.Width = parameters.Width; m_jpegImage.Height = parameters.Height; m_jpegImage.BitsPerComponent = 8; m_jpegImage.ComponentsPerSample = (byte)parameters.ComponentsPerSample; m_jpegImage.Colorspace = parameters.Colorspace; }
private LoadedImageAttributes getImageParametersFromDecompressor() { LoadedImageAttributes result = new LoadedImageAttributes(); result.Colorspace = (Colorspace)m_decompressor.Out_color_space; result.QuantizeColors = m_decompressor.Quantize_colors; result.Width = m_decompressor.Output_width; result.Height = m_decompressor.Output_height; result.ComponentsPerSample = m_decompressor.Out_color_components; result.Components = m_decompressor.Output_components; result.ActualNumberOfColors = m_decompressor.Actual_number_of_colors; result.Colormap = m_decompressor.Colormap; result.DensityUnit = m_decompressor.Density_unit; result.DensityX = m_decompressor.X_density; result.DensityY = m_decompressor.Y_density; return(result); }
private LoadedImageAttributes getImageParametersFromDecompressor() { LoadedImageAttributes result = new LoadedImageAttributes(); result.Colorspace = (Colorspace)m_decompressor.Out_color_space; result.QuantizeColors = m_decompressor.Quantize_colors; result.Width = m_decompressor.Output_width; result.Height = m_decompressor.Output_height; result.ComponentsPerSample = m_decompressor.Out_color_components; result.Components = m_decompressor.Output_components; result.ActualNumberOfColors = m_decompressor.Actual_number_of_colors; result.Colormap = m_decompressor.Colormap; result.DensityUnit = m_decompressor.Density_unit; result.DensityX = m_decompressor.X_density; result.DensityY = m_decompressor.Y_density; return result; }
public void SetImageAttributes(LoadedImageAttributes parameters) { m_parameters = parameters ?? throw new ArgumentNullException(nameof(parameters)); }