C#生成高清缩略图的方法
2024-08-23 11:33:12
/// <summary>
/// 为图片生成缩略图
/// </summary>
/// <param name="phyPath">原图片的路径</param>
/// <param name="width">缩略图宽</param>
/// <param name="height">缩略图高</param>
/// <returns></returns>
public System.Drawing.Image GetThumbnail(System.Drawing.Image image, int width, int height)
{
Bitmap bmp = new Bitmap(width, height);
//从Bitmap创建一个System.Drawing.Graphics
System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp);
//设置
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//下面这个也设成高质量
gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
//下面这个设成High
gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
//把原始图像绘制成上面所设置宽高的缩小图
System.Drawing.Rectangle rectDestination = new System.Drawing.Rectangle(, , width, height); gr.DrawImage(image, rectDestination, , , image.Width, image.Height, GraphicsUnit.Pixel);
return bmp;
}
调用方法
HttpPostedFile file = photoFile.PostedFile;
if (!file.ContentType.Contains("image"))
{
return "照片格式不合法";
}
string ext = Path.GetExtension(file.FileName).ToLower();
if (ext != ".jpg" && ext != ".gif" && ext != ".png" && ext != ".jpeg")
{
return "请您上传jpg、gif、png图片";
}
if (file.ContentLength > * * )
{
return "请您上传512字节内的图片";
}
string newName = Guid.NewGuid().ToString();
string tempPath = "upload/";
string img = tempPath + newName + ext;
string filePath = Server.MapPath(img);
if (!Directory.Exists(tempPath))
{
Directory.CreateDirectory(tempPath);
}
using (System.Drawing.Image originalImage = System.Drawing.Image.FromStream(file.InputStream))
{
GetThumbnail(originalImage, , ).Save(filePath);
}
最新文章
- linuxz终端开启echo颜色显示
- Mssql中一些常用数据类型的说明和区别
- 多进程程序设计,王明学learn
- Saltstack-自动化部署
- color mask
- 【算法】简单选择排序 O(n^2) 不稳定的 C语言
- 网页解析的全过程(输入url到展示页面)
- Thinkphp3.2———配置模块
- SignalR简单Demo
- HTML5支持服务器发送事件(Server-Sent Events)-单向消息传递数据推送(C#示例)
- Sprite子节点透明度不能跟随父节点变化的问题求解(转)
- 各类排序算法的实现C#版
- Btrace官方教程-中文版
- django学习自修第一天【简介】
- MT【277】华中科技大学理科实验班选拔之三次方程
- JDK1.7 高并发下的HashMap
- IntelliJ idea连接操作DB2数据库
- java Scanner类的使用
- 分布式版本控制系统Git的安装与使用 第二次作业
- 在dbgrideh中允许选择多行,如何知道哪些行被选中