Пример #1
0
        public static void ExecuteConvert(string inputpfm, string outputldr, float factor, float gamma, float? luminosity)
        {
            string fmt = outputldr.Substring(outputldr.Length - 3, 3);

            Console.WriteLine("\n\nStarting file conversion using these parameters:\n");

            Console.WriteLine("pfmFile: " + inputpfm);
            Console.WriteLine("ldrFile: " + outputldr);
            Console.WriteLine("Format: " + fmt);
            Console.WriteLine("Factor: " + factor);
            Console.WriteLine("Gamma: " + gamma);
            Console.WriteLine(luminosity.HasValue ? ("Manual luminosity: " + luminosity) : "Average luminosity");

            Console.WriteLine("\n");

            HdrImage myImg = new HdrImage();

            try
            {
                using (FileStream inputStream = File.OpenRead(inputpfm))
                {
                    myImg.readPfm(inputStream);
                    Console.WriteLine($"File {inputpfm} has been correctly read from disk.");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return;
            }

            Console.WriteLine("Starting Tone Mapping...");
            try
            {
                Console.WriteLine(">>>> Normalizing image...");

                if (luminosity.HasValue) myImg.normalizeImage(factor, luminosity.Value);
                else myImg.normalizeImage(factor);

                Console.WriteLine(">>>> Clamping image...");
                myImg.clampImage();

                Console.WriteLine(">>>> Saving LDR image...");
                myImg.writeLdrImage(outputldr, fmt, gamma);

                Console.WriteLine($"File {outputldr} has been correctly written to disk.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return;
            }

        } //Convert
Пример #2
0
        public void TestClampImage()
        {
            var img = new HdrImage(2, 1);

            img.setPixel(0, 0, new Color(0.5e1f, 1.0e1f, 1.5e1f));
            img.setPixel(1, 0, new Color(0.5e3f, 1.0e3f, 1.5e3f));

            img.clampImage();

            foreach (var curPixel in img.pixel)
            {
                Assert.True((curPixel.r >= 0) && (curPixel.r <= 1), "TestClampImage failed - Assert 1/3");
                Assert.True((curPixel.g >= 0) && (curPixel.g <= 1), "TestClampImage failed - Assert 2/3");
                Assert.True((curPixel.b >= 0) && (curPixel.b <= 1), "TestClampImage failed - Assert 3/3");
            }
        }