// --------------------------------------------------------------------------------------------------------------------
//
// Copyright (c) James South.
// Licensed under the Apache License, Version 2.0.
//
//
// The image helpers.
//
// --------------------------------------------------------------------------------------------------------------------
namespace ImageProcessor.Web.Helpers
{
#region Using
using System.Drawing.Imaging;
using System.IO;
using System.Text.RegularExpressions;
#endregion
///
/// The image helpers.
///
public static class ImageHelpers
{
///
/// The image format regex.
///
private static readonly Regex FormatRegex = new Regex(@"(\.?)(j(pg|peg)|bmp|png|gif|ti(ff|f)|ico)", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.RightToLeft);
///
/// The image format regex for matching the file format at the end of a string.
///
private static readonly Regex EndFormatRegex = new Regex(@"(\.)(j(pg|peg)|bmp|png|gif|ti(ff|f)|ico)$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.RightToLeft);
///
/// Checks a given string to check whether the value contains a valid image extension.
///
/// The string containing the filename to check.
/// True the value contains a valid image extension, otherwise false.
public static bool IsValidImageExtension(string fileName)
{
return EndFormatRegex.IsMatch(fileName);
}
///
/// Returns the correct file extension for the given string input
///
///
/// The string to parse.
///
///
/// The correct file extension for the given string input if it can find one; otherwise an empty string.
///
public static string GetExtension(string input)
{
Match match = FormatRegex.Matches(input)[0];
return match.Success ? match.Value : string.Empty;
}
///
/// Returns the correct image format based on the given file extension.
///
/// The string containing the filename to check against.
/// The correct image format based on the given filename.
//public static ImageFormat GetImageFormat(string fileName)
//{
// string extension = Path.GetExtension(fileName);
// if (extension != null)
// {
// string ext = extension.ToUpperInvariant();
// switch (ext)
// {
// case ".ICO":
// return ImageFormat.Icon;
// case ".PNG":
// return ImageFormat.Png;
// case ".BMP":
// return ImageFormat.Bmp;
// case ".GIF":
// return ImageFormat.Gif;
// case ".TIF":
// case ".TIFF":
// return ImageFormat.Tiff;
// default:
// // Should be a jpeg.
// return ImageFormat.Jpeg;
// }
// }
// // TODO: Show custom exception?
// return null;
//}
}
}