基本信息
源码名称:C# 生成缩略图 并下载例子源码(asp.net)
源码大小:0.02M
文件格式:.rar
开发语言:C#
更新时间:2016-04-17
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Web;
namespace GetminPic
{
/// <summary>
/// Getmin 的摘要说明
/// </summary>
public class Getmin : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//1.获取用户上传的文件流
HttpPostedFile file = context.Request.Files[0];
//获取文件名
string fileName = file.FileName;
//获取扩展名
string Extension = Path.GetExtension(fileName).ToUpper();
//2.根据用户上传的文件流创建一个图片
using (Image originalImage = Image.FromStream(file.InputStream))
{
//获取原始图片的宽和高
int owidth = originalImage.Width;
int oheight = originalImage.Height;
//缩略图的宽
int mwidth = Convert.ToInt32(context.Request.Form["width"]);
//等比例的高,取整数
int mheight = mwidth * oheight / owidth;
//3.根据原始图片,等比例创建一个缩小后的图片
using (Image minImage = new Bitmap(mwidth, mheight))
{
//4.把大图片内容画到小图片上
//基于小图创建一个画面对象
Graphics gmin = Graphics.FromImage(minImage);
//把大图画到小图上
gmin.DrawImage(originalImage, 0, 0, mwidth, mheight);
//5.下载缩略图
MemoryStream ms = new MemoryStream();
//判断图片类型
ImageFormat imageFormat = null;
string ContentType = "";
switch (Extension)
{
case ".JPG": imageFormat = ImageFormat.Jpeg; ContentType = "image/jpeg"; break;
case ".PNG": imageFormat = ImageFormat.Png; ContentType = "image/png"; break;
case ".GIF": imageFormat = ImageFormat.Gif; ContentType = "image/gif"; break;
//................如需要其他图片格式继续添加
}
minImage.Save(ms,imageFormat);
context.Response.ClearContent();
context.Response.AddHeader("Content-Disposition", "attachment; filename=" HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
context.Response.ContentType=ContentType;
context.Response.BinaryWrite(ms.ToArray());
context.Response.End();
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}