internal static bool ParseReadnessParam(NameValueCollection parameters, out ReadnessLevel readnessLevel) { if ((null != parameters) && !string.IsNullOrEmpty(parameters[CaptchaImageTransformation.READLEVEL_KEY])) { readnessLevel = (ReadnessLevel)Enum.Parse(typeof(ReadnessLevel), parameters[CaptchaImageTransformation.READLEVEL_KEY]); return true; } else { readnessLevel = ReadnessLevel.Normal; return false; } }
// Methods internal static string ToQueryString( int width, int height, int clientCacheDuration, int serverCacheDuration, RotateFlipType rotateFlip, bool drawGrayscale, bool drawSepia, DynamicText text, DynamicImageFormat imageFormat, KeyValuePair<Type, IDictionary<string, string>>? imageCreator, Dictionary<Type, IDictionary<string, string>> imageTransformations, TextContainerSizeType sizeType, CaptchaStyle distortionStyle, ReadnessLevel readnessLevel, Color backColor) { string dynamicImageQueryString = DynamicImageProvider.ToQueryString( null, width, height, clientCacheDuration, serverCacheDuration, rotateFlip, drawGrayscale, drawSepia, text, imageFormat, imageCreator, imageTransformations); List<string> parameters = new List<string>(); string parameterFormat = "{0}={1}"; // size type if (TextContainerSizeType.Specified != sizeType) { parameters.Add(string.Format(parameterFormat, TextDependentImageCreator.TEXTCONTSIZETYPE_KEY, sizeType)); } // distortion style if (CaptchaStyle.Confetti != distortionStyle) { parameters.Add(string.Format(parameterFormat, CaptchaImageTransformation.DISTSTYLE_KEY, distortionStyle)); } // readness level if (ReadnessLevel.Normal != readnessLevel) { parameters.Add(string.Format(parameterFormat, CaptchaImageTransformation.READLEVEL_KEY, readnessLevel)); } // back color if (Color.White != backColor) { parameters.Add(string.Format(parameterFormat, CaptchaImageTransformation.CAPTCHABACKCOLOR_KEY, backColor.ToArgb())); } return (0 < parameters.Count) ? string.Concat(dynamicImageQueryString, "&", string.Join("&", parameters.ToArray())) : dynamicImageQueryString; }