Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

About this user

Edgardo Rossetto

« Newer Snippets
Older Snippets »
Showing 1-2 of 2 total  RSS 

Resize image with .NET

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;

public static byte[] ResizeImageFile(byte[] imageFile, int targetSize)
{
    Image original = Image.FromStream(new MemoryStream(imageFile));
    int targetH, targetW;
    if (original.Height > original.Width)
    {
        targetH = targetSize;
        targetW = (int)(original.Width * ((float)targetSize / (float)original.Height));
    }
    else
    {
        targetW = targetSize;
        targetH = (int)(original.Height * ((float)targetSize / (float)original.Width));
    }
    Image imgPhoto = Image.FromStream(new MemoryStream(imageFile));
    // Create a new blank canvas.  The resized image will be drawn on this canvas.
    Bitmap bmPhoto = new Bitmap(targetW, targetH, PixelFormat.Format24bppRgb);
    bmPhoto.SetResolution(72, 72);
    Graphics grPhoto = Graphics.FromImage(bmPhoto);
    grPhoto.SmoothingMode = SmoothingMode.AntiAlias;
    grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic;
    grPhoto.PixelOffsetMode = PixelOffsetMode.HighQuality;
    grPhoto.DrawImage(imgPhoto, new Rectangle(0, 0, targetW, targetH), 0, 0, original.Width, original.Height, GraphicsUnit.Pixel);
    // Save out to memory and then to a file.  We dispose of all objects to make sure the files don't stay locked.
    MemoryStream mm = new MemoryStream();
    bmPhoto.Save(mm, System.Drawing.Imaging.ImageFormat.Jpeg);
    original.Dispose();
    imgPhoto.Dispose();
    bmPhoto.Dispose();
    grPhoto.Dispose();
    return mm.GetBuffer();
}

Crop image with .NET

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;

public static byte[] CropImageFile(byte[] imageFile, int targetW, int targetH, int targetX, int targetY)
{
    Image imgPhoto = Image.FromStream(new MemoryStream(imageFile));
    Bitmap bmPhoto = new Bitmap(targetW, targetH, PixelFormat.Format24bppRgb);
    bmPhoto.SetResolution(72, 72);
    Graphics grPhoto = Graphics.FromImage(bmPhoto);
    grPhoto.SmoothingMode = SmoothingMode.AntiAlias;
    grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic;
    grPhoto.PixelOffsetMode = PixelOffsetMode.HighQuality;
    grPhoto.DrawImage(imgPhoto, new Rectangle(0, 0, targetW, targetH), targetX, targetY, targetW, targetH, GraphicsUnit.Pixel);
    // Save out to memory and then to a file.  We dispose of all objects to make sure the files don't stay locked.
    MemoryStream mm = new MemoryStream();
    bmPhoto.Save(mm, System.Drawing.Imaging.ImageFormat.Jpeg);
    imgPhoto.Dispose();
    bmPhoto.Dispose();
    grPhoto.Dispose();
    return mm.GetBuffer();
}
« Newer Snippets
Older Snippets »
Showing 1-2 of 2 total  RSS