Exemplo n.º 1
0
        private static void testJpegOutput(JpegImage jpeg, CompressionParameters parameters, string jpegFileName, string folderWithExpectedResults)
        {
            using (FileStream output = new FileStream(jpegFileName, FileMode.Create))
                jpeg.WriteJpeg(output, parameters);

            FileAssert.AreEqual(jpegFileName, Path.Combine(folderWithExpectedResults, jpegFileName));
        }
Exemplo n.º 2
0
        private static void testJpegOutput(JpegImage jpeg, CompressionParameters parameters, string jpegFileName)
        {
            using (FileStream output = new FileStream(jpegFileName, FileMode.Create))
                jpeg.WriteJpeg(output, parameters);

            FileAssert.AreEqual(jpegFileName, Tester.MapExpectedPath(jpegFileName));
        }
Exemplo n.º 3
0
        public static unsafe CompressionHandle CompressInit(CompressionParameters parameters)
        {
            parameters.Initialize();
            byte *pBytes = (byte *)&parameters;

            return(lzham_compress_init(pBytes));
        }
Exemplo n.º 4
0
        public void EncodeFromRaw()
        {
            const string testImage = "obama-240p.raw";
            var          path      = Path.GetFullPath(Path.Combine(TestImageDirectory, testImage));
            var          imageByte = File.ReadAllBytes(path);

            using var image = ImageHelper.FromRaw(imageByte, 427, 240, 427 * 3, 3, true);

            using var compressionParameters = new CompressionParameters();
            OpenJpeg.SetDefaultEncoderParameters(compressionParameters);
            compressionParameters.TcpNumLayers = 1;
            compressionParameters.CodingParameterDistortionAllocation = 1;

            using var codec = OpenJpeg.CreateCompress(CodecFormat.J2k);

            OpenJpeg.SetInfoHandler(codec, new DelegateHandler <MsgCallback>(MsgInfoCallback), IntPtr.Zero);
            OpenJpeg.SetWarnHandler(codec, new DelegateHandler <MsgCallback>(MsgWarnCallback), IntPtr.Zero);
            OpenJpeg.SetErrorHandler(codec, new DelegateHandler <MsgCallback>(MsgErrorCallback), IntPtr.Zero);

            Assert.True(OpenJpeg.SetupEncoder(codec, compressionParameters, image));

            var bufferLength = imageByte.Length + 1024;
            var outputBuffer = Marshal.AllocHGlobal(bufferLength);

            var buffer = new Buffer
            {
                Data     = outputBuffer,
                Length   = bufferLength,
                Position = 0
            };

            var size     = Marshal.SizeOf(buffer);
            var userData = Marshal.AllocHGlobal(size);

            Marshal.StructureToPtr(buffer, userData, false);

            using var stream = OpenJpeg.StreamCreate((ulong)buffer.Length, false);
            OpenJpeg.StreamSetUserData(stream, userData);
            OpenJpeg.StreamSetUserDataLength(stream, buffer.Length);
            OpenJpeg.StreamSetWriteFunction(stream, new DelegateHandler <StreamWrite>(StreamWriteCallback));
            OpenJpeg.StreamSetReadFunction(stream, new DelegateHandler <StreamRead>(StreamReadCallback));
            OpenJpeg.StreamSetSeekFunction(stream, new DelegateHandler <StreamSeek>(StreamSeekCallback));
            OpenJpeg.StreamSetSkipFunction(stream, new DelegateHandler <StreamSkip>(StreamSkipCallback));

            Assert.True(OpenJpeg.StartCompress(codec, image, stream));
            Assert.True(OpenJpeg.Encode(codec, stream));
            Assert.True(OpenJpeg.EndCompress(codec, stream));

            var outputPath = Path.Combine(ResultDirectory, nameof(this.EncodeFromRaw), $"{Path.GetFileNameWithoutExtension(testImage)}.j2k");

            Directory.CreateDirectory(Path.GetDirectoryName(outputPath));
            var tmp    = Marshal.PtrToStructure <Buffer>(userData);
            var output = new byte[tmp.Position];

            Marshal.Copy(buffer.Data, output, 0, output.Length);
            File.WriteAllBytes(outputPath, output);

            Marshal.FreeHGlobal(outputBuffer);
            Marshal.FreeHGlobal(userData);
        }
Exemplo n.º 5
0
 public void CompressionParametersCodingParameterDistortionAllocation()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.CodingParameterDistortionAllocation = value;
         Assert.Equal(value, parameter.CodingParameterDistortionAllocation);
     }
 }
Exemplo n.º 6
0
 public void CompressionParametersTcpNumLayers()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.TcpNumLayers = value;
         Assert.Equal(value, parameter.TcpNumLayers);
     }
 }
Exemplo n.º 7
0
 public void CompressionParametersIndexOn()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.IndexOn = value;
         Assert.Equal(value, parameter.IndexOn);
     }
 }
Exemplo n.º 8
0
 public void CompressionParametersSubsamplingDy()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.SubsamplingDy = value;
         Assert.Equal(value, parameter.SubsamplingDy);
     }
 }
Exemplo n.º 9
0
 public void CompressionParametersJpwlSensitivitySize()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.JpwlSensitivitySize = value;
         Assert.Equal(value, parameter.JpwlSensitivitySize);
     }
 }
Exemplo n.º 10
0
 public void CompressionParametersRegionSize()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new ushort[] { 0, 1, 10 })
     {
         parameter.RegionSize = value;
         Assert.Equal(value, parameter.RegionSize);
     }
 }
Exemplo n.º 11
0
 public void CompressionParametersCodingParameterCinema()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in Enum.GetValues(typeof(CinemaMode)).Cast <CinemaMode>())
     {
         parameter.CodingParameterCinema = value;
         Assert.Equal(value, parameter.CodingParameterCinema);
     }
 }
Exemplo n.º 12
0
 public void CompressionParametersCodingParameterFixedQuality()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.CodingParameterFixedQuality = value;
         Assert.Equal(value, parameter.CodingParameterFixedQuality);
     }
 }
Exemplo n.º 13
0
 public void CompressionParametersNumProgressionOrderChanges()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0u, 1u, 10u })
     {
         parameter.NumProgressionOrderChanges = value;
         Assert.Equal(value, parameter.NumProgressionOrderChanges);
     }
 }
Exemplo n.º 14
0
 public void CompressionParametersNumResolution()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.NumResolution = value;
         Assert.Equal(value, parameter.NumResolution);
     }
 }
Exemplo n.º 15
0
 public void CompressionParametersMode()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.Mode = value;
         Assert.Equal(value, parameter.Mode);
     }
 }
Exemplo n.º 16
0
 public void CompressionParametersMaximumComponentSize()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.MaximumComponentSize = value;
         Assert.Equal(value, parameter.MaximumComponentSize);
     }
 }
Exemplo n.º 17
0
 public void CompressionParametersCodingFormat()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.CodingFormat = value;
         Assert.Equal(value, parameter.CodingFormat);
     }
 }
Exemplo n.º 18
0
 public void CompressionParametersTilePartOn()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new sbyte[] { -10, -1, 0, 1, 10 })
     {
         parameter.TilePartOn = value;
         Assert.Equal(value, parameter.TilePartOn);
     }
 }
Exemplo n.º 19
0
 public void CompressionParametersCodingParameterRegionSize()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in Enum.GetValues(typeof(RegionSizeCapabilities)).Cast <RegionSizeCapabilities>())
     {
         parameter.CodingParameterRegionSize = value;
         Assert.Equal(value, parameter.CodingParameterRegionSize);
     }
 }
Exemplo n.º 20
0
 public void CompressionParametersTileSizeOn()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { true, false })
     {
         parameter.TileSizeOn = value;
         Assert.Equal(value, parameter.TileSizeOn);
     }
 }
Exemplo n.º 21
0
 public void CompressionParametersJpwlHeaderProtectionMainHeader()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.JpwlHeaderProtectionMainHeader = value;
         Assert.Equal(value, parameter.JpwlHeaderProtectionMainHeader);
     }
 }
Exemplo n.º 22
0
 public JpegFactory(int quality = 100, int smoothingFactor = 1, bool progressive = false)
 {
     compressionParams = new CompressionParameters
     {
         Quality           = quality,
         SimpleProgressive = progressive,
         SmoothingFactor   = smoothingFactor
     };
 }
Exemplo n.º 23
0
 public void CompressionParametersCodeBlockWidthInitial()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.CodeBlockWidthInitial = value;
         Assert.Equal(value, parameter.CodeBlockWidthInitial);
     }
 }
Exemplo n.º 24
0
 public void CompressionParametersProgressionOrder()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in Enum.GetValues(typeof(ProgressionOrder)).Cast <ProgressionOrder>())
     {
         parameter.ProgressionOrder = value;
         Assert.Equal(value, parameter.ProgressionOrder);
     }
 }
Exemplo n.º 25
0
 public void CompressionParametersIrreversible()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { true, false })
     {
         parameter.Irreversible = value;
         Assert.Equal(value, parameter.Irreversible);
     }
 }
Exemplo n.º 26
0
 public void CompressionParametersRegionOfInterestShift()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.RegionOfInterestShift = value;
         Assert.Equal(value, parameter.RegionOfInterestShift);
     }
 }
Exemplo n.º 27
0
 public void CompressionParametersResSpec()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.ResSpec = value;
         Assert.Equal(value, parameter.ResSpec);
     }
 }
Exemplo n.º 28
0
 public void CompressionParametersImageOffsetY0()
 {
     using var parameter = new CompressionParameters();
     foreach (var value in new[] { 0, 1, 10 })
     {
         parameter.ImageOffsetY0 = value;
         Assert.Equal(value, parameter.ImageOffsetY0);
     }
 }
Exemplo n.º 29
0
        public override void Save(Image i, Stream dest)
        {
            BitMiracle.LibJpeg.JpegImage j = BitMiracle.LibJpeg.JpegImage.FromBitmap((System.Drawing.Bitmap)i);
            CompressionParameters        c = new CompressionParameters();

            c.Quality           = 100;
            c.SimpleProgressive = false;
            j.WriteJpeg(dest, c);
            j.Dispose();
            System.GC.Collect();
        }
Exemplo n.º 30
0
        private static CompressionParameters ToCompressionParameters(DicomJpegParams parameters)
        {
            var compressionParams = new CompressionParameters();

            if (parameters != null)
            {
                compressionParams.Quality         = parameters.Quality;
                compressionParams.SmoothingFactor = parameters.SmoothingFactor;
            }

            return(compressionParams);
        }