/// <summary> /// Test GetPictureDistortion function /// </summary> private void ButtonMeasure_Click(object sender, EventArgs e) { try { if (this.pictureBox.Image == null) { MessageBox.Show("Please, load an reference image first"); } using (OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog()) { openFileDialog.Filter = "WebP images (*.webp)|*.webp"; openFileDialog.FileName = ""; if (openFileDialog.ShowDialog() == DialogResult.OK) { Bitmap source; Bitmap reference; float[] result; //Load Bitmaps source = (Bitmap)this.pictureBox.Image; using (WebP webp = new WebP()) reference = webp.Load(openFileDialog.FileName); //Measure PSNR using (WebP webp = new WebP()) result = webp.GetPictureDistortion(source, reference, 0); MessageBox.Show("Red: " + result[0] + "dB.\nGreen: " + result[1] + "dB.\nBlue: " + result[2] + "dB.\nAlpha: " + result[3] + "dB.\nAll: " + result[4] + "dB.", "PSNR"); //Measure SSIM using (WebP webp = new WebP()) result = webp.GetPictureDistortion(source, reference, 1); MessageBox.Show("Red: " + result[0] + "dB.\nGreen: " + result[1] + "dB.\nBlue: " + result[2] + "dB.\nAlpha: " + result[3] + "dB.\nAll: " + result[4] + "dB.", "SSIM"); //Measure LSIM using (WebP webp = new WebP()) result = webp.GetPictureDistortion(source, reference, 2); MessageBox.Show("Red: " + result[0] + "dB.\nGreen: " + result[1] + "dB.\nBlue: " + result[2] + "dB.\nAlpha: " + result[3] + "dB.\nAll: " + result[4] + "dB.", "LSIM"); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\nIn WebPExample.buttonMeasure_Click", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }