Mega Code Archive

 
Categories / C# / 2D Graphics
 

Changing image opacity, Resize image, crop image and gray scale image

using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.Drawing.Drawing2D; using System.Web; using System.Drawing.Imaging; using System.IO; using System.Windows.Forms;   namespace Mynx {     class ImageUtilities     {         /// <summary>           /// method for changing the opacity of an image           /// </summary>           /// <param name="image">image to set opacity on</param>           /// <param name="opacity">percentage of opacity</param>           /// <returns></returns>           public Image SetImageOpacity(Image image, float opacity)         {             try             {                 //create a Bitmap the size of the image provided                   Bitmap bmp = new Bitmap(image.Width, image.Height);                 //create a graphics object from the image                   Graphics gfx = Graphics.FromImage(bmp);                 //create a color matrix object                   ColorMatrix matrix = new ColorMatrix();                 //set the opacity                   matrix.Matrix33 = opacity;                 //create image attributes                   ImageAttributes attributes = new ImageAttributes();                 //set the color(opacity) of the image                   attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);                 //now draw the image                   gfx.DrawImage(image, new Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, attributes);                 gfx.Dispose();                 return bmp;             }             catch (Exception ex)             {                 MessageBox.Show(ex.Message);                 return null;             }         }         public static Image Resize(Image imgToResize, Size size)         {             int sourceWidth = imgToResize.Width;             int sourceHeight = imgToResize.Height;             float nPercent = 0;             float nPercentW = 0;             float nPercentH = 0;             nPercentW = ((float)size.Width / (float)sourceWidth);             nPercentH = ((float)size.Height / (float)sourceHeight);             if (nPercentH < nPercentW)                 nPercent = nPercentH;             else                 nPercent = nPercentW;             int destWidth = (int)(sourceWidth * nPercent);             int destHeight = (int)(sourceHeight * nPercent);             Bitmap b = new Bitmap(destWidth, destHeight);             Graphics g = Graphics.FromImage((Image)b);             g.InterpolationMode = InterpolationMode.HighQualityBicubic;             g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);             g.Dispose();             return (Image)b;         }         public static Image Crop(Image img, Rectangle cropArea)         {             Bitmap bmpImage = new Bitmap(img);             Bitmap bmpCrop = bmpImage.Clone(cropArea, bmpImage.PixelFormat);             return (Image)(bmpCrop);         }         public static Bitmap GrayscaleConvert(Bitmap original)         {             //create a blank bitmap the same size as original             Bitmap newBitmap = new Bitmap(original.Width, original.Height);             //get a graphics object from the new image             Graphics g = Graphics.FromImage(newBitmap);             //create the grayscale ColorMatrix             ColorMatrix colorMatrix = new ColorMatrix(new float[][]              {              new float[] {.3f, .3f, .3f, 0, 0},              new float[] {.59f, .59f, .59f, 0, 0},              new float[] {.11f, .11f, .11f, 0, 0},              new float[] {0, 0, 0, 1, 0},              new float[] {0, 0, 0, 0, 1}             });             //create some image attributes             ImageAttributes attributes = new ImageAttributes();             //set the color matrix attribute             attributes.SetColorMatrix(colorMatrix);             //draw the original image on the new image             //using the grayscale color matrix             g.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height), 0, 0, original.Width, original.Height, GraphicsUnit.Pixel, attributes);             //dispose the Graphics object             g.Dispose();             return newBitmap;         }     } }