From 073c44255d5dd1a19cd498be7dd5292f5198ec9d Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Tue, 17 Apr 2018 01:01:19 +1000 Subject: [PATCH] It works!!!! --- .../PdfJsPort/Components/PdfJsFrameComponent.cs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/PdfJsPort/Components/PdfJsFrameComponent.cs b/src/ImageSharp/Formats/Jpeg/PdfJsPort/Components/PdfJsFrameComponent.cs index 747e6107e5..e6ee4f16c9 100644 --- a/src/ImageSharp/Formats/Jpeg/PdfJsPort/Components/PdfJsFrameComponent.cs +++ b/src/ImageSharp/Formats/Jpeg/PdfJsPort/Components/PdfJsFrameComponent.cs @@ -26,6 +26,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort.Components this.Id = id; this.HorizontalSamplingFactor = horizontalFactor; this.VerticalSamplingFactor = verticalFactor; + this.SamplingFactors = new Size(this.HorizontalSamplingFactor, this.VerticalSamplingFactor); this.QuantizationTableIndex = quantizationTableIndex; this.Index = index; } @@ -63,10 +64,10 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort.Components public int Index { get; } /// - public Size SizeInBlocks => new Size(this.WidthInBlocks, this.HeightInBlocks); + public Size SizeInBlocks { get; private set; } /// - public Size SamplingFactors => new Size(this.HorizontalSamplingFactor, this.VerticalSamplingFactor); + public Size SamplingFactors { get; set; } /// /// Gets the number of blocks per line @@ -88,10 +89,6 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort.Components /// public int ACHuffmanTableId { get; set; } - internal int BlocksPerLineForMcu { get; private set; } - - internal int BlocksPerColumnForMcu { get; private set; } - public PdfJsFrame Frame { get; } /// @@ -109,8 +106,9 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort.Components this.HeightInBlocks = (int)MathF.Ceiling( MathF.Ceiling(this.Frame.Scanlines / 8F) * this.VerticalSamplingFactor / this.Frame.MaxVerticalFactor); - this.BlocksPerLineForMcu = this.Frame.McusPerLine * this.HorizontalSamplingFactor; - this.BlocksPerColumnForMcu = this.Frame.McusPerColumn * this.VerticalSamplingFactor; + int blocksPerLineForMcu = this.Frame.McusPerLine * this.HorizontalSamplingFactor; + int blocksPerColumnForMcu = this.Frame.McusPerColumn * this.VerticalSamplingFactor; + this.SizeInBlocks = new Size(blocksPerLineForMcu, blocksPerColumnForMcu); // For 4-component images (either CMYK or YCbCrK), we only support two // hv vectors: [0x11 0x11 0x11 0x11] and [0x22 0x11 0x11 0x22]. @@ -131,7 +129,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.PdfJsPort.Components this.SubSamplingDivisors = c0.SamplingFactors.DivideBy(this.SamplingFactors); } - this.SpectralBlocks = this.memoryManager.Allocate2D(this.BlocksPerColumnForMcu, this.BlocksPerLineForMcu + 1, true); + this.SpectralBlocks = this.memoryManager.Allocate2D(blocksPerColumnForMcu, blocksPerLineForMcu + 1, true); } [MethodImpl(MethodImplOptions.AggressiveInlining)]