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
public void TestNormalizeImage() { 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.normalizeImage(factor: 1000.0f, luminosity: 100.0f); Assert.True(img.getPixel(0, 0).isClose(new Color(0.5e2f, 1.0e2f, 1.5e2f)), "TestNormalizeImage failed - Assert 1/2"); Assert.True(img.getPixel(1, 0).isClose(new Color(0.5e4f, 1.0e4f, 1.5e4f)), "TestNormalizeImage failed - Assert 2/2"); }