From 96d824ec5f9862fa1994abd6c11da38ba6af76c8 Mon Sep 17 00:00:00 2001 From: James South Date: Mon, 4 May 2015 16:01:04 +0100 Subject: [PATCH] Enable jpeg Former-commit-id: 40d6b11321e75d800299ed93368cc629411692af Former-commit-id: fe1ce463f33c93ef092b9bb9652128851e4130bf Former-commit-id: 1420fe512ea88a7b4f02cf5cbc327e6ddc04a2bd --- src/ImageProcessor/Formats/Gif/GifDecoder.cs | 8 +- src/ImageProcessor/Formats/Jpg/JpegDecoder.cs | 29 +- src/ImageProcessor/Formats/Jpg/JpegEncoder.cs | 36 +-- .../LibJpeg/Classic/Internal/my_upsampler.cs | 2 +- .../Jpg/LibJpeg/DecompressorToJpegImage.cs | 82 ++++-- .../Jpg/LibJpeg/IDecompressDestination.cs | 217 ++------------ .../Jpg/LibJpeg/LoadedImageAttributes.cs | 274 ++++++++++++++++++ src/ImageProcessor/Image.cs | 22 +- src/ImageProcessor/ImageProcessor.csproj | 78 +++++ .../ImageProcessor.csproj.DotSettings | 1 + .../Formats/EncoderDecoderTests.cs | 6 +- .../TestImages/Formats/Jpg/Backdrop.jpg | Bin 0 -> 49595 bytes 12 files changed, 474 insertions(+), 281 deletions(-) create mode 100644 src/ImageProcessor/Formats/Jpg/LibJpeg/LoadedImageAttributes.cs create mode 100644 tests/ImageProcessor.Tests/TestImages/Formats/Jpg/Backdrop.jpg diff --git a/src/ImageProcessor/Formats/Gif/GifDecoder.cs b/src/ImageProcessor/Formats/Gif/GifDecoder.cs index 5779d7ff9f..00c59db849 100644 --- a/src/ImageProcessor/Formats/Gif/GifDecoder.cs +++ b/src/ImageProcessor/Formats/Gif/GifDecoder.cs @@ -22,13 +22,7 @@ namespace ImageProcessor.Formats /// Gets the size of the header for this image type. /// /// The size of the header. - public int HeaderSize - { - get - { - return 6; - } - } + public int HeaderSize => 6; /// /// Returns a value indicating whether the supports the specified diff --git a/src/ImageProcessor/Formats/Jpg/JpegDecoder.cs b/src/ImageProcessor/Formats/Jpg/JpegDecoder.cs index 9fcb1fc492..3e96636650 100644 --- a/src/ImageProcessor/Formats/Jpg/JpegDecoder.cs +++ b/src/ImageProcessor/Formats/Jpg/JpegDecoder.cs @@ -1,10 +1,12 @@ -// =============================================================================== -// JpegDecoder.cs -// .NET Image Tools -// =============================================================================== -// Copyright (c) .NET Image Tools Development Group. -// All rights reserved. -// =============================================================================== +// -------------------------------------------------------------------------------------------------------------------- +// +// Copyright © James South and contributors. +// Licensed under the Apache License, Version 2.0. +// +// +// Image decoder for generating an image out of a jpg stream. +// +// -------------------------------------------------------------------------------------------------------------------- namespace ImageProcessor.Formats { @@ -13,20 +15,15 @@ namespace ImageProcessor.Formats using BitMiracle.LibJpeg; /// - /// Image decoder for generating an image out of an jpg stream. + /// Image decoder for generating an image out of a jpg stream. /// public class JpegDecoder : IImageDecoder { - #region IImageDecoder Members - /// /// Gets the size of the header for this image type. /// /// The size of the header. - public int HeaderSize - { - get { return 11; } - } + public int HeaderSize => 11; /// /// Indicates if the image decoder supports the specified @@ -145,13 +142,11 @@ namespace ImageProcessor.Formats pixels[offset + 0] = (byte)sample[2]; pixels[offset + 1] = (byte)sample[1]; pixels[offset + 2] = (byte)sample[0]; - pixels[offset + 3] = (byte)255; + pixels[offset + 3] = 255; } } image.SetPixels(pixelWidth, pixelHeight, pixels); } - - #endregion } } diff --git a/src/ImageProcessor/Formats/Jpg/JpegEncoder.cs b/src/ImageProcessor/Formats/Jpg/JpegEncoder.cs index 03a395aad1..c816e279e1 100644 --- a/src/ImageProcessor/Formats/Jpg/JpegEncoder.cs +++ b/src/ImageProcessor/Formats/Jpg/JpegEncoder.cs @@ -1,11 +1,12 @@ -// =============================================================================== -// JpegEncoder.cs -// .NET Image Tools -// =============================================================================== -// Copyright (c) .NET Image Tools Development Group. -// All rights reserved. -// =============================================================================== - +// -------------------------------------------------------------------------------------------------------------------- +// +// Copyright © James South and contributors. +// Licensed under the Apache License, Version 2.0. +// +// +// Encoder for writing the data image to a stream in jpg format. +// +// -------------------------------------------------------------------------------------------------------------------- namespace ImageProcessor.Formats { @@ -19,9 +20,7 @@ namespace ImageProcessor.Formats /// public class JpegEncoder : IImageEncoder { - #region Properties - - private int _quality = 100; + private int quality = 100; /// /// Gets or sets the quality, that will be used to encode the image. Quality /// index must be between 0 and 100 (compression from max to min). @@ -29,22 +28,15 @@ namespace ImageProcessor.Formats /// The quality of the jpg image from 0 to 100. public int Quality { - get { return _quality; } - set { _quality = value; } + get { return this.quality; } + set { this.quality = value.Clamp(1, 100); } } - #endregion - - #region IImageEncoder Members - /// /// Gets the default file extension for this encoder. /// /// The default file extension for this encoder. - public string Extension - { - get { return "JPG"; } - } + public string Extension => "JPG"; /// /// Indicates if the image encoder supports the specified @@ -114,7 +106,5 @@ namespace ImageProcessor.Formats JpegImage jpg = new JpegImage(rows, Colorspace.RGB); jpg.WriteJpeg(stream, new CompressionParameters { Quality = this.Quality }); } - - #endregion } } diff --git a/src/ImageProcessor/Formats/Jpg/LibJpeg/Classic/Internal/my_upsampler.cs b/src/ImageProcessor/Formats/Jpg/LibJpeg/Classic/Internal/my_upsampler.cs index 81aaa7ed64..adae0897f3 100644 --- a/src/ImageProcessor/Formats/Jpg/LibJpeg/Classic/Internal/my_upsampler.cs +++ b/src/ImageProcessor/Formats/Jpg/LibJpeg/Classic/Internal/my_upsampler.cs @@ -347,7 +347,7 @@ namespace BitMiracle.LibJpeg.Classic.Internal int row = m_upsampleRowOffset + inrow; int outIndex = 0; - for (int col = 0; col < m_cinfo.m_output_width; col++) + for (int col = 0; outIndex < m_cinfo.m_output_width; col++) { byte invalue = input_data[row][col]; /* don't need GETJSAMPLE() here */ output_data[inrow][outIndex] = invalue; diff --git a/src/ImageProcessor/Formats/Jpg/LibJpeg/DecompressorToJpegImage.cs b/src/ImageProcessor/Formats/Jpg/LibJpeg/DecompressorToJpegImage.cs index 83a07ba513..79ab054dbc 100644 --- a/src/ImageProcessor/Formats/Jpg/LibJpeg/DecompressorToJpegImage.cs +++ b/src/ImageProcessor/Formats/Jpg/LibJpeg/DecompressorToJpegImage.cs @@ -1,30 +1,54 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; -using Nine.Imaging; +// -------------------------------------------------------------------------------------------------------------------- +// +// Copyright © James South and contributors. +// Licensed under the Apache License, Version 2.0. +// +// +// Decompresses a jpeg image. +// +// -------------------------------------------------------------------------------------------------------------------- namespace BitMiracle.LibJpeg { + using System; + using System.IO; + using ImageProcessor; - class DecompressorToJpegImage : IDecompressDestination + /// + /// Decompresses a jpeg image. + /// + internal class DecompressorToJpegImage : IDecompressDestination { - private JpegImage m_jpegImage; + /// + /// The jpeg image. + /// + private readonly JpegImage jpegImage; + /// + /// Initializes a new instance of the class. + /// + /// + /// The jpeg image. + /// internal DecompressorToJpegImage(JpegImage jpegImage) { - m_jpegImage = jpegImage; + this.jpegImage = jpegImage; } - public Stream Output - { - get - { - return null; - } - } + /// + /// Gets the stream with decompressed data. + /// + public Stream Output => null; + /// + /// Sets the image attributes. + /// + /// + /// The containing attributes. + /// + /// + /// public void SetImageAttributes(LoadedImageAttributes parameters) { if (parameters.Width > ImageBase.MaxWidth || parameters.Height > ImageBase.MaxHeight) @@ -33,23 +57,37 @@ namespace BitMiracle.LibJpeg $"The input jpg '{ parameters.Width }x{ parameters.Height }' is bigger then the max allowed size '{ ImageBase.MaxWidth }x{ ImageBase.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; + this.jpegImage.Width = parameters.Width; + this.jpegImage.Height = parameters.Height; + this.jpegImage.BitsPerComponent = 8; + this.jpegImage.ComponentsPerSample = (byte)parameters.ComponentsPerSample; + this.jpegImage.Colorspace = parameters.Colorspace; } + /// + /// Begins writing. + /// + /// Not implemented. public void BeginWrite() { } + /// + /// Processes the given row of pixels. + /// + /// + /// The representing the row. + /// public void ProcessPixelsRow(byte[] row) { - SampleRow samplesRow = new SampleRow(row, m_jpegImage.Width, m_jpegImage.BitsPerComponent, m_jpegImage.ComponentsPerSample); - m_jpegImage.addSampleRow(samplesRow); + SampleRow samplesRow = new SampleRow(row, this.jpegImage.Width, this.jpegImage.BitsPerComponent, this.jpegImage.ComponentsPerSample); + this.jpegImage.addSampleRow(samplesRow); } + /// + /// Ends write. + /// + /// Not implemented. public void EndWrite() { } diff --git a/src/ImageProcessor/Formats/Jpg/LibJpeg/IDecompressDestination.cs b/src/ImageProcessor/Formats/Jpg/LibJpeg/IDecompressDestination.cs index 26f8daafc9..1e6cd859b5 100644 --- a/src/ImageProcessor/Formats/Jpg/LibJpeg/IDecompressDestination.cs +++ b/src/ImageProcessor/Formats/Jpg/LibJpeg/IDecompressDestination.cs @@ -1,19 +1,21 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; - -using BitMiracle.LibJpeg.Classic; +// -------------------------------------------------------------------------------------------------------------------- +// +// Copyright © James South and contributors. +// Licensed under the Apache License, Version 2.0. +// +// -------------------------------------------------------------------------------------------------------------------- namespace BitMiracle.LibJpeg { + using System.IO; + /// /// Common interface for processing of decompression. /// - interface IDecompressDestination + internal interface IDecompressDestination { /// - /// Strean with decompressed data + /// Gets the stream with decompressed data. /// Stream Output { @@ -21,208 +23,29 @@ namespace BitMiracle.LibJpeg } /// - /// Implementor of this interface should process image properties received from decompressor. + /// Sets the image attributes. /// - /// Image properties + /// + /// The containing attributes. + /// void SetImageAttributes(LoadedImageAttributes parameters); /// - /// Called before decompression + /// Begins writing. Called before decompression /// void BeginWrite(); /// - /// It called during decompression - pass row of pixels from JPEG + /// Processes the given row of pixels. /// - /// + /// + /// The representing the row. + /// void ProcessPixelsRow(byte[] row); /// - /// Called after decompression + /// Ends writing. Called after decompression /// void EndWrite(); } - - /// - /// Holds parameters of image for decompression (IDecomressDesination) - /// - class LoadedImageAttributes - { - private Colorspace m_colorspace; - private bool m_quantizeColors; - private int m_width; - private int m_height; - private int m_componentsPerSample; - private int m_components; - private int m_actualNumberOfColors; - private byte[][] m_colormap; - private DensityUnit m_densityUnit; - private int m_densityX; - private int m_densityY; - - /* Decompression processing parameters --- these fields must be set before - * calling jpeg_start_decompress(). Note that jpeg_read_header() initializes - * them to default values. - */ - - // colorspace for output - public Colorspace Colorspace - { - get - { - return m_colorspace; - } - internal set - { - m_colorspace = value; - } - } - - // true=colormapped output wanted - public bool QuantizeColors - { - get - { - return m_quantizeColors; - } - internal set - { - m_quantizeColors = value; - } - } - - /* Description of actual output image that will be returned to application. - * These fields are computed by jpeg_start_decompress(). - * You can also use jpeg_calc_output_dimensions() to determine these values - * in advance of calling jpeg_start_decompress(). - */ - - // scaled image width - public int Width - { - get - { - return m_width; - } - internal set - { - m_width = value; - } - } - - // scaled image height - public int Height - { - get - { - return m_height; - } - internal set - { - m_height = value; - } - } - - // # of color components in out_color_space - public int ComponentsPerSample - { - get - { - return m_componentsPerSample; - } - internal set - { - m_componentsPerSample = value; - } - } - - // # of color components returned. it is 1 (a colormap index) when - // quantizing colors; otherwise it equals out_color_components. - public int Components - { - get - { - return m_components; - } - internal set - { - m_components = value; - } - } - - /* When quantizing colors, the output colormap is described by these fields. - * The application can supply a colormap by setting colormap non-null before - * calling jpeg_start_decompress; otherwise a colormap is created during - * jpeg_start_decompress or jpeg_start_output. - * The map has out_color_components rows and actual_number_of_colors columns. - */ - - // number of entries in use - public int ActualNumberOfColors - { - get - { - return m_actualNumberOfColors; - } - internal set - { - m_actualNumberOfColors = value; - } - } - - // The color map as a 2-D pixel array - public byte[][] Colormap - { - get - { - return m_colormap; - } - internal set - { - m_colormap = value; - } - } - - // These fields record data obtained from optional markers - // recognized by the JPEG library. - - // JFIF code for pixel size units - public DensityUnit DensityUnit - { - get - { - return m_densityUnit; - } - internal set - { - m_densityUnit = value; - } - } - - // Horizontal pixel density - public int DensityX - { - get - { - return m_densityX; - } - internal set - { - m_densityX = value; - } - } - - // Vertical pixel density - public int DensityY - { - get - { - return m_densityY; - } - internal set - { - m_densityY = value; - } - } - } } diff --git a/src/ImageProcessor/Formats/Jpg/LibJpeg/LoadedImageAttributes.cs b/src/ImageProcessor/Formats/Jpg/LibJpeg/LoadedImageAttributes.cs new file mode 100644 index 0000000000..17bf0de93f --- /dev/null +++ b/src/ImageProcessor/Formats/Jpg/LibJpeg/LoadedImageAttributes.cs @@ -0,0 +1,274 @@ +namespace BitMiracle.LibJpeg +{ + using BitMiracle.LibJpeg.Classic; + + /// + /// Holds parameters of image for decompression (IDecomressDesination) + /// + class LoadedImageAttributes + { + /// + /// The m_colorspace. + /// + private Colorspace m_colorspace; + + /// + /// The m_quantize colors. + /// + private bool m_quantizeColors; + + /// + /// The m_width. + /// + private int m_width; + + /// + /// The m_height. + /// + private int m_height; + + /// + /// The m_components per sample. + /// + private int m_componentsPerSample; + + /// + /// The m_components. + /// + private int m_components; + + /// + /// The m_actual number of colors. + /// + private int m_actualNumberOfColors; + + /// + /// The m_colormap. + /// + private byte[][] m_colormap; + + /// + /// The m_density unit. + /// + private DensityUnit m_densityUnit; + + /// + /// The m_density x. + /// + private int m_densityX; + + /// + /// The m_density y. + /// + private int m_densityY; + + /* Decompression processing parameters --- these fields must be set before + * calling jpeg_start_decompress(). Note that jpeg_read_header() initializes + * them to default values. + */ + + // colorspace for output + /// + /// Gets the colorspace. + /// + public Colorspace Colorspace + { + get + { + return this.m_colorspace; + } + + internal set + { + this.m_colorspace = value; + } + } + + // true=colormapped output wanted + /// + /// Gets a value indicating whether quantize colors. + /// + public bool QuantizeColors + { + get + { + return this.m_quantizeColors; + } + + internal set + { + this.m_quantizeColors = value; + } + } + + /* Description of actual output image that will be returned to application. + * These fields are computed by jpeg_start_decompress(). + * You can also use jpeg_calc_output_dimensions() to determine these values + * in advance of calling jpeg_start_decompress(). + */ + + // scaled image width + /// + /// Gets the width. + /// + public int Width + { + get + { + return this.m_width; + } + + internal set + { + this.m_width = value; + } + } + + // scaled image height + /// + /// Gets the height. + /// + public int Height + { + get + { + return this.m_height; + } + + internal set + { + this.m_height = value; + } + } + + // # of color components in out_color_space + /// + /// Gets the components per sample. + /// + public int ComponentsPerSample + { + get + { + return this.m_componentsPerSample; + } + + internal set + { + this.m_componentsPerSample = value; + } + } + + // # of color components returned. it is 1 (a colormap index) when + // quantizing colors; otherwise it equals out_color_components. + /// + /// Gets the components. + /// + public int Components + { + get + { + return this.m_components; + } + + internal set + { + this.m_components = value; + } + } + + /* When quantizing colors, the output colormap is described by these fields. + * The application can supply a colormap by setting colormap non-null before + * calling jpeg_start_decompress; otherwise a colormap is created during + * jpeg_start_decompress or jpeg_start_output. + * The map has out_color_components rows and actual_number_of_colors columns. + */ + + // number of entries in use + /// + /// Gets the actual number of colors. + /// + public int ActualNumberOfColors + { + get + { + return this.m_actualNumberOfColors; + } + + internal set + { + this.m_actualNumberOfColors = value; + } + } + + // The color map as a 2-D pixel array + /// + /// Gets the colormap. + /// + public byte[][] Colormap + { + get + { + return this.m_colormap; + } + + internal set + { + this.m_colormap = value; + } + } + + // These fields record data obtained from optional markers + // recognized by the JPEG library. + + // JFIF code for pixel size units + /// + /// Gets the density unit. + /// + public DensityUnit DensityUnit + { + get + { + return this.m_densityUnit; + } + + internal set + { + this.m_densityUnit = value; + } + } + + // Horizontal pixel density + /// + /// Gets the density x. + /// + public int DensityX + { + get + { + return this.m_densityX; + } + + internal set + { + this.m_densityX = value; + } + } + + // Vertical pixel density + /// + /// Gets the density y. + /// + public int DensityY + { + get + { + return this.m_densityY; + } + + internal set + { + this.m_densityY = value; + } + } + } +} \ No newline at end of file diff --git a/src/ImageProcessor/Image.cs b/src/ImageProcessor/Image.cs index fe81e5f79e..0e81131677 100644 --- a/src/ImageProcessor/Image.cs +++ b/src/ImageProcessor/Image.cs @@ -48,23 +48,23 @@ namespace ImageProcessor /// private static readonly Lazy> DefaultDecoders = new Lazy>(() => new List - { - new BmpDecoder(), - // new JpegDecoder(), - new PngDecoder(), - // new GifDecoder(), - }); + { + new BmpDecoder(), + new JpegDecoder(), + new PngDecoder(), + // new GifDecoder(), + }); /// /// The default collection of . /// private static readonly Lazy> DefaultEncoders = new Lazy>(() => new List - { - new BmpEncoder(), - // new JpegEncoder(), - new PngEncoder(), - }); + { + new BmpEncoder(), + new JpegEncoder(), + new PngEncoder() + }); /// /// Initializes a new instance of the class. diff --git a/src/ImageProcessor/ImageProcessor.csproj b/src/ImageProcessor/ImageProcessor.csproj index 9fb2db2dda..8ef33006e1 100644 --- a/src/ImageProcessor/ImageProcessor.csproj +++ b/src/ImageProcessor/ImageProcessor.csproj @@ -56,6 +56,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -94,6 +171,7 @@ + diff --git a/src/ImageProcessor/ImageProcessor.csproj.DotSettings b/src/ImageProcessor/ImageProcessor.csproj.DotSettings index 36b7564a4d..82abcd86d0 100644 --- a/src/ImageProcessor/ImageProcessor.csproj.DotSettings +++ b/src/ImageProcessor/ImageProcessor.csproj.DotSettings @@ -9,5 +9,6 @@ True True True + True True True \ No newline at end of file diff --git a/tests/ImageProcessor.Tests/Formats/EncoderDecoderTests.cs b/tests/ImageProcessor.Tests/Formats/EncoderDecoderTests.cs index 5d561094c1..fe9133b0f7 100644 --- a/tests/ImageProcessor.Tests/Formats/EncoderDecoderTests.cs +++ b/tests/ImageProcessor.Tests/Formats/EncoderDecoderTests.cs @@ -13,10 +13,10 @@ [Theory] //[InlineData("TestImages/Car.bmp")] //[InlineData("TestImages/Portrait.png")] - //[InlineData("TestImages/Backdrop.jpg")] + [InlineData("../../TestImages/Formats/Jpg/Backdrop.jpg")] //[InlineData("TestImages/Windmill.gif")] - [InlineData("../../TestImages/Formats/Bmp/Car.bmp")] - [InlineData("../../TestImages/Formats/Png/cmyk.png")] + //[InlineData("../../TestImages/Formats/Bmp/Car.bmp")] + //[InlineData("../../TestImages/Formats/Png/cmyk.png")] public void DecodeThenEncodeImageFromStreamShouldSucceed(string filename) { if (!Directory.Exists("Encoded")) diff --git a/tests/ImageProcessor.Tests/TestImages/Formats/Jpg/Backdrop.jpg b/tests/ImageProcessor.Tests/TestImages/Formats/Jpg/Backdrop.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3271f8aba6135f7909d30f77e4e7a0ac62594bac GIT binary patch literal 49595 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 z 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 J8YrYQ|JfSGW)uJb literal 0 HcmV?d00001