This is a nice neat way of resizing an image, I've simplified it and de-refactored (?) it for simplicity.
Firstly, you ask for your image from the database:
SqlCommand cmd = new SqlCommand("SELECT image FROM images WHERE id=@id", connection);cmd.Parameters.Add("@id", Request.QueryString["id"]);
SqlDataReader dr = cmd.ExecuteReader();
Allocate an array of bytes to store it in temporarily:
byte
[] image = null;while (dr.Read())
{
image = (byte[])dr.GetValue(0);
}
dr.Close();
Now you have an array of bytes that contains your image, you can freely load it into a bitmap from the array:
Bitmap b = (Bitmap)Bitmap.FromStream(new MemoryStream(image));
And you can resize that bitmap easily using the overloaded bitmap constructor:
Bitmap output = new Bitmap(b, new Size(320, 240);
One resized bitmap that you can now save or send anywhere - including Response.OutputStream!
Permalink