![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
using
System;
using System.Configuration;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;
using System.IO;
using System.Drawing;
namespace Utility
{
public class ImageHelper
{
public static Image GnerateImage(Stream stream, int width, int height)
{
Image image = Image.FromStream(stream);
int x, y;
int nowWidth = 0 ;
int nowHeight = 0 ;
if (image.Height <= height && image.Width <= width)
{
return image;
}
else
{
if (image.Width / ( double )image.Height > width / ( double )height)
{
nowHeight = image.Height;
nowWidth = image.Height * width / height;
y = 0 ;
x = (image.Width - nowWidth) / 2 ;
}
else
{
nowWidth = image.Width;
nowHeight = image.Width * height / width;
x = 0 ;
y = (image.Height - height) / 2 ;
}
// 新建一个bmp图片
Image bitmap = new Bitmap(width, height);
// 新建一个画板
Graphics g = Graphics.FromImage(bitmap);
// 设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
// 设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
// 清空画布并以透明背景色填充
g.Clear(System.Drawing.Color.Transparent);
// 在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(image, new Rectangle( 0 , 0 , width, height),
new Rectangle(x, y, nowWidth, nowHeight),
GraphicsUnit.Pixel);
g.Dispose();
return bitmap;
}
}
}
}
using System.Configuration;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;
using System.IO;
using System.Drawing;
namespace Utility
{
public class ImageHelper
{
public static Image GnerateImage(Stream stream, int width, int height)
{
Image image = Image.FromStream(stream);
int x, y;
int nowWidth = 0 ;
int nowHeight = 0 ;
if (image.Height <= height && image.Width <= width)
{
return image;
}
else
{
if (image.Width / ( double )image.Height > width / ( double )height)
{
nowHeight = image.Height;
nowWidth = image.Height * width / height;
y = 0 ;
x = (image.Width - nowWidth) / 2 ;
}
else
{
nowWidth = image.Width;
nowHeight = image.Width * height / width;
x = 0 ;
y = (image.Height - height) / 2 ;
}
// 新建一个bmp图片
Image bitmap = new Bitmap(width, height);
// 新建一个画板
Graphics g = Graphics.FromImage(bitmap);
// 设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
// 设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
// 清空画布并以透明背景色填充
g.Clear(System.Drawing.Color.Transparent);
// 在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(image, new Rectangle( 0 , 0 , width, height),
new Rectangle(x, y, nowWidth, nowHeight),
GraphicsUnit.Pixel);
g.Dispose();
return bitmap;
}
}
}
}
缩略图实现方案