C#图片压缩
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
namespace UpLoadImg
{
using System.Drawing;
public partial class Upload : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//判断当前请求方式
string method = Request.HttpMethod;
//判断
if (method == "POST")
{
//1.0接收上传过来的文件
HttpFileCollection files = Request.Files;//如果上传页面有多个上传文本框,那么返回回来的是一个集合,如果只有一个,那么这个Files中只有一条数据
//2.0判断文件是否存在
if (files.Count > 0)
{
//得到上传过来的文件
HttpPostedFile file = files[0];
if (file.ContentLength > 0)//ContentLength上传过来流文件的长度==》
{
#region 1.0生成图片的名称以及上传的路径
//得到原图的后缀
string extName = System.IO.Path.GetExtension(file.FileName);
//生成新的名称
string newName = Guid.NewGuid() + extName;
//得到上传路径
string imgPath = Server.MapPath("/upload/img/") + newName;
string thumPath = Server.MapPath("/upload/thum/") + newName;
#endregion
//参数设置
#region 2.0上传图片和生成缩略图
//判断文本类型ContentType
if (file.ContentType.Contains("image/"))
{
//将上传过来的流转成图片
using (Image img = Image.FromStream(file.InputStream))
{
//生成缩略图
Image thumImg = img.GetThumbnailImage(150, 150, null, System.IntPtr.Zero);
thumImg.Save(thumPath);
#region 2.1打水印
//给原图准备一个画家
using (Graphics g = Graphics.FromImage(img))
{
//1.0得到水印图片
using (Image waterImg = Image.FromFile(Server.MapPath("/upload/1.png")))
{
var x = img.Width - waterImg.Width;
var y = img.Height - waterImg.Height;
//第一个矩形:指定水印显示大小(后两个)和位置(前两个)
//第二个矩形:指定水印显示部分的大小
//把整个水印图片打到右下角
g.DrawImage(waterImg, new Rectangle(x, y, waterImg.Width, waterImg.Height), new Rectangle(0,0, waterImg.Width, waterImg.Height), GraphicsUnit.Pixel);
}
}
#endregion
img.Save(imgPath);
}
}
else
{
Response.Write("<script>alert('请选择图片进行上传');window.location='/Admin/Product/Index.aspx'</script>");
Response.End();
}
#endregion
}
else
{
Response.Write("<script>alert('请选择文件之后再上传');window.location='/Admin/Product/Index.aspx'</script>");
Response.End();
}
}
}
}
}
}
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果感觉对您有用,请点击推荐。您的支持,是我的动力!

浙公网安备 33010602011771号