using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.IO;
namespace Hdnug
{
///
/// Summary description for ImageUtils
///
public class ImageUtils
{
const int sizeThumb = 69;
public static byte[] MakeThumb(byte[] fullsize)
{
Image iOriginal, iThumb;
int targetH, targetW;
iOriginal = Image.FromStream(new MemoryStream(fullsize));
if (iOriginal.Height > iOriginal.Width)
{
targetH = sizeThumb;
targetW = Convert.ToInt32(iOriginal.Width * (sizeThumb / iOriginal.Height));
}
else
{
targetW = sizeThumb;
targetH = Convert.ToInt32(iOriginal.Height * (sizeThumb / iOriginal.Width));
}
iThumb = iOriginal.GetThumbnailImage(targetW, targetH, null, System.IntPtr.Zero);
MemoryStream m = new MemoryStream();
iThumb.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);
return m.GetBuffer();
}
public static byte[] MakeThumb(byte[] fullsize, int newwidth, int newheight)
{
Image iOriginal, iThumb;
double scaleH, scaleW;
Rectangle srcRect = new Rectangle();
iOriginal = Image.FromStream(new MemoryStream(fullsize));
scaleH = iOriginal.Height / newheight;
scaleW = iOriginal.Width / newwidth;
if (scaleH == scaleW)
{
srcRect.Width = iOriginal.Width;
srcRect.Height = iOriginal.Height;
srcRect.X = 0;
srcRect.Y = 0;
}
else if ((scaleH) > (scaleW))
{
srcRect.Width = iOriginal.Width;
srcRect.Height = Convert.ToInt32(newheight * scaleW);
srcRect.X = 0;
srcRect.Y = Convert.ToInt32((iOriginal.Height - srcRect.Height) / 2);
}
else
{
srcRect.Width = Convert.ToInt32(newwidth * scaleH);
srcRect.Height = iOriginal.Height;
srcRect.X = Convert.ToInt32((iOriginal.Width - srcRect.Width) / 2);
srcRect.Y = 0;
}
iThumb = new Bitmap(newwidth, newheight);
Graphics g = Graphics.FromImage(iThumb);
g.DrawImage(iOriginal, new Rectangle(0, 0, newwidth, newheight), srcRect, GraphicsUnit.Pixel);
MemoryStream m = new MemoryStream();
iThumb.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);
return m.GetBuffer();
}
public static byte[] MakeThumb(byte[] fullsize, int maxwidth)
{
Image iOriginal, iThumb;
double scale;
iOriginal = Image.FromStream(new MemoryStream(fullsize));
if (iOriginal.Width > maxwidth)
{
scale = iOriginal.Width / maxwidth;
int newheight = Convert.ToInt32(iOriginal.Height / scale);
iThumb = new Bitmap(iOriginal, maxwidth, newheight);
MemoryStream m = new MemoryStream();
iThumb.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);
return m.GetBuffer();
}
else
{
return fullsize;
}
}
}
}