Tuesday, 19 July 2016

ResizeImage & Save in C#

public static Bitmap ResizeImage(Image image, int width, int height)
        {
            var destRect = new Rectangle(0, 0, width, height);
            var destImage = new Bitmap(width, height);
            destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution);
            using (var graphics = Graphics.FromImage(destImage))
            {
                graphics.CompositingMode = CompositingMode.SourceCopy;
                graphics.CompositingQuality = CompositingQuality.HighQuality;
                graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
                graphics.SmoothingMode = SmoothingMode.HighQuality;
                graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
                using (var wrapMode = new ImageAttributes())
                {
                    wrapMode.SetWrapMode(WrapMode.TileFlipXY);
                    graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode);
                }
            }
            return destImage;
        }

private ImageCodecInfo GetEncoder(ImageFormat format)
        {
            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
            foreach (ImageCodecInfo codec in codecs)
            {
                if (codec.FormatID == format.Guid)
                {
                    return codec;
                }
            }
            return null;
        }


Example :

 Bitmap ResizeUplImg = ResizeImage(UplImg, 100, 100);
 ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
 EncoderParameters myEncoderParameters = new EncoderParameters(1);
 EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L);
 myEncoderParameters.Param[0] = myEncoderParameter;
 ResizeUplImg.Save("path", jgpEncoder,  myEncoderParameters);

No comments:

Post a Comment