Ejemplo n.º 1
0
 private bool ApplyEffect(BitmapSource bitmap, EffectType effectType, out BitmapSource result)
 {
     if (!Effects.CanApply(bitmap, effectType))
     {
         MessageBox.Show(string.Format("This effect is not supported for that image. Image format: {0}", bitmap.Format), "Error", MessageBoxButton.OK,
                         MessageBoxImage.Exclamation);
         result = null;
         return(false);
     }
     if (effectType.GetParameter() != null)
     {
         string errorMessage;
         object parameterValue;
         if (!ValidateParameter(effectType, EffectParameterComboBox.Text, out errorMessage, out parameterValue))
         {
             MessageBox.Show(errorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
             result = null;
             return(false);
         }
         result = Effects.EffectByType[effectType](bitmap, parameterValue);
     }
     else if (effectType == EffectType.Dct)
     {
         string        errorMessage;
         DctParameters dctParameters;
         if (!ValidateDct(out errorMessage, out dctParameters))
         {
             MessageBox.Show(errorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
             result = null;
             return(false);
         }
         result = Effects.EffectByType[effectType](bitmap, dctParameters);
         return(false);
     }
     else if (effectType == EffectType.Wavelet)
     {
         string            errorMessage;
         WaveletParameters waveletParameters;
         if (!ValidateWavelet(out errorMessage, out waveletParameters))
         {
             MessageBox.Show(errorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
             result = null;
             return(false);
         }
         result = Effects.EffectByType[effectType](bitmap, waveletParameters);
         return(true);
     }
     else
     {
         result = Effects.EffectByType[effectType](bitmap, null);
     }
     return(true);
 }