#region Create Thumbnail
// Create a thumbnail in byte array format from the image encoded in the passed byte array.
// (RESIZE an image in a byte[] variable.)
public static byte[] CreateThumbnail(byte[] PassedImage, int LargestSide, int Height, int Width)
{
byte[] ReturnedThumbnail;
using (System.IO.MemoryStream StartMemoryStream = new System.IO.MemoryStream(), NewMemoryStream = new System.IO.MemoryStream())
{
// write the string to the stream
StartMemoryStream.Write(PassedImage, 0, PassedImage.Length);
// create the start Bitmap from the MemoryStream that contains the image
System.Drawing.Bitmap startBitmap = new System.Drawing.Bitmap(StartMemoryStream);
// set thumbnail height and width proportional to the original image.
int newHeight;
int newWidth;
double HW_ratio;
if (startBitmap.Height > startBitmap.Width)
{
newHeight = LargestSide;
HW_ratio = (double)((double)LargestSide / (double)startBitmap.Height);
newWidth = (int)(HW_ratio * (double)startBitmap.Width);
}
else
{
newWidth = LargestSide;
HW_ratio = (double)((double)LargestSide / (double)startBitmap.Width);
newHeight = (int)(HW_ratio * (double)startBitmap.Height);
}
newHeight = Height;
newWidth = Width;
// create a new Bitmap with dimensions for the thumbnail.
System.Drawing.Bitmap newBitmap = new System.Drawing.Bitmap(newWidth, newHeight);
// Copy the image from the START Bitmap into the NEW Bitmap.
// This will create a thumnail size of the same image.
newBitmap = ResizeImage(startBitmap, newWidth, newHeight);
// Save this image to the specified stream in the specified format.
newBitmap.Save(NewMemoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
// Fill the byte[] for the thumbnail from the new MemoryStream.
ReturnedThumbnail = NewMemoryStream.ToArray();
}
// return the resized image as a string of bytes.
return ReturnedThumbnail;
}
// Resize a Bitmap
private static System.Drawing.Bitmap ResizeImage(System.Drawing.Bitmap image, int width, int height)
{
System.Drawing.Bitmap resizedImage = new System.Drawing.Bitmap(width, height);
using (System.Drawing.Graphics gfx = System.Drawing.Graphics.FromImage(resizedImage))
{
gfx.DrawImage(image, new System.Drawing.Rectangle(0, 0, width, height),
new System.Drawing.Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel);
}
return resizedImage;
}
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
public System.Drawing.Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
return returnImage;
}
#endregion
User above code like this :
System.Drawing.Image returnImage;
byte[] byteArrayIn;
MemoryStream ms;
//Get Bytes from Requested file
byte[] buffer = new byte[uploads.ContentLength];
uploads.InputStream.Read(buffer, 0, uploads.ContentLength);
if ((uploads.ContentLength / 1000) > 1000)
{
//Create image from Bytes array
System.Drawing.Image img = byteArrayToImage(buffer);
int height = Convert.ToInt32(Convert.ToDouble(img.Height) * .7);
int width = Convert.ToInt32(Convert.ToDouble(img.Width) * .7);
//Resize Image - ORIGINAL
byteArrayIn = CreateThumbnail(buffer, 10000, height, width);
//byteArrayIn = CreateThumbnail(buffer, 10000, 550, 700);
ms = new MemoryStream(byteArrayIn);
returnImage = System.Drawing.Image.FromStream(ms);
returnImage.Save(path_ORIGINAL);
}
else
{
uploads.SaveAs(path_ORIGINAL);
}
//Resize Image - Create Thumbnail
byteArrayIn = CreateThumbnail(buffer, 100, 105, 145);
ms = new MemoryStream(byteArrayIn);
returnImage = System.Drawing.Image.FromStream(ms);
returnImage.Save(path_Thumbnail);
// Create a thumbnail in byte array format from the image encoded in the passed byte array.
// (RESIZE an image in a byte[] variable.)
public static byte[] CreateThumbnail(byte[] PassedImage, int LargestSide, int Height, int Width)
{
byte[] ReturnedThumbnail;
using (System.IO.MemoryStream StartMemoryStream = new System.IO.MemoryStream(), NewMemoryStream = new System.IO.MemoryStream())
{
// write the string to the stream
StartMemoryStream.Write(PassedImage, 0, PassedImage.Length);
// create the start Bitmap from the MemoryStream that contains the image
System.Drawing.Bitmap startBitmap = new System.Drawing.Bitmap(StartMemoryStream);
// set thumbnail height and width proportional to the original image.
int newHeight;
int newWidth;
double HW_ratio;
if (startBitmap.Height > startBitmap.Width)
{
newHeight = LargestSide;
HW_ratio = (double)((double)LargestSide / (double)startBitmap.Height);
newWidth = (int)(HW_ratio * (double)startBitmap.Width);
}
else
{
newWidth = LargestSide;
HW_ratio = (double)((double)LargestSide / (double)startBitmap.Width);
newHeight = (int)(HW_ratio * (double)startBitmap.Height);
}
newHeight = Height;
newWidth = Width;
// create a new Bitmap with dimensions for the thumbnail.
System.Drawing.Bitmap newBitmap = new System.Drawing.Bitmap(newWidth, newHeight);
// Copy the image from the START Bitmap into the NEW Bitmap.
// This will create a thumnail size of the same image.
newBitmap = ResizeImage(startBitmap, newWidth, newHeight);
// Save this image to the specified stream in the specified format.
newBitmap.Save(NewMemoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
// Fill the byte[] for the thumbnail from the new MemoryStream.
ReturnedThumbnail = NewMemoryStream.ToArray();
}
// return the resized image as a string of bytes.
return ReturnedThumbnail;
}
// Resize a Bitmap
private static System.Drawing.Bitmap ResizeImage(System.Drawing.Bitmap image, int width, int height)
{
System.Drawing.Bitmap resizedImage = new System.Drawing.Bitmap(width, height);
using (System.Drawing.Graphics gfx = System.Drawing.Graphics.FromImage(resizedImage))
{
gfx.DrawImage(image, new System.Drawing.Rectangle(0, 0, width, height),
new System.Drawing.Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel);
}
return resizedImage;
}
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
public System.Drawing.Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
return returnImage;
}
#endregion
User above code like this :
System.Drawing.Image returnImage;
byte[] byteArrayIn;
MemoryStream ms;
//Get Bytes from Requested file
byte[] buffer = new byte[uploads.ContentLength];
uploads.InputStream.Read(buffer, 0, uploads.ContentLength);
if ((uploads.ContentLength / 1000) > 1000)
{
//Create image from Bytes array
System.Drawing.Image img = byteArrayToImage(buffer);
int height = Convert.ToInt32(Convert.ToDouble(img.Height) * .7);
int width = Convert.ToInt32(Convert.ToDouble(img.Width) * .7);
//Resize Image - ORIGINAL
byteArrayIn = CreateThumbnail(buffer, 10000, height, width);
//byteArrayIn = CreateThumbnail(buffer, 10000, 550, 700);
ms = new MemoryStream(byteArrayIn);
returnImage = System.Drawing.Image.FromStream(ms);
returnImage.Save(path_ORIGINAL);
}
else
{
uploads.SaveAs(path_ORIGINAL);
}
//Resize Image - Create Thumbnail
byteArrayIn = CreateThumbnail(buffer, 100, 105, 145);
ms = new MemoryStream(byteArrayIn);
returnImage = System.Drawing.Image.FromStream(ms);
returnImage.Save(path_Thumbnail);
Resize JPEG image to fixed width, while keeping aspect ratio as it is
ReplyDeleteSystem.Drawing.Image img = CommonUtil.byteArrayToImage(buffer);
int width = 200;
int height = Convert.ToInt32((img.Height * width) / img.Width);
public static byte[] CreateThumbnail(byte[] PassedImage, int LargestSide)
ReplyDelete{
byte[] ReturnedThumbnail;
using (System.IO.MemoryStream StartMemoryStream = new System.IO.MemoryStream(), NewMemoryStream = new System.IO.MemoryStream())
{
// write the string to the stream
StartMemoryStream.Write(PassedImage, 0, PassedImage.Length);
// create the start Bitmap from the MemoryStream that contains the image
System.Drawing.Bitmap startBitmap = new System.Drawing.Bitmap(StartMemoryStream);
// set thumbnail height and width proportional to the original image.
int newHeight;
int newWidth;
double HW_ratio;
if (startBitmap.Height > startBitmap.Width)
{
newHeight = LargestSide;
HW_ratio = (double)((double)LargestSide / (double)startBitmap.Height);
newWidth = (int)(HW_ratio * (double)startBitmap.Width);
}
else
{
newWidth = LargestSide;
HW_ratio = (double)((double)LargestSide / (double)startBitmap.Width);
newHeight = (int)(HW_ratio * (double)startBitmap.Height);
}
// create a new Bitmap with dimensions for the thumbnail.
System.Drawing.Bitmap newBitmap = new System.Drawing.Bitmap(newWidth, newHeight);
// Copy the image from the START Bitmap into the NEW Bitmap.
// This will create a thumnail size of the same image.
newBitmap = ResizeImage(startBitmap, newWidth, newHeight);
// Save this image to the specified stream in the specified format.
newBitmap.Save(NewMemoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
// Fill the byte[] for the thumbnail from the new MemoryStream.
ReturnedThumbnail = NewMemoryStream.ToArray();
}
// return the resized image as a string of bytes.
return ReturnedThumbnail;
}