您的位置:首页 > 编程语言 > C#

C#实战:PS图片上传图片 同时生成微缩图<转>

2010-12-03 14:43 148 查看
【IT168 技术文档】本文旨在与各位朋友们分享我是如何在项目中用C# “ps图片” 为网站生成同比例微缩图的解决方案。如有不足之处欢迎您指出。

  一、技术概述:

  1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx)

  2.C#位图处理 System.Drawing。

  3.最新demo支持IE7,IE8,FireFox。

  二、微缩图处理方法:

生成微缩图的核心方法:

  CreateThumbnailPicture

代码

//上传成功后网站内源图片相对路径
string relativePath = System.Web.HttpContext.Current.Request.ApplicationPath
+ string.Format(@"Content/Upload/Images/{0}", fileName);

/*
比例处理
微缩图高度(DefaultHeight属性值为 400)
*/
System.Drawing.Image img = System.Drawing.Image.FromFile(toFile);
int width = img.Width;
int height = img.Height;
float ratio = (float)width / height;

//微缩图高度和宽度
int newHeight = height <= DefaultHeight ? height : DefaultHeight;
int newWidth = height <= DefaultHeight ? width : Convert.ToInt32(DefaultHeight * ratio);

FileInfo generatedfile = new FileInfo(toFile);
string newFileName = "Thumb_" + generatedfile.Name;
string newFilePath = Path.Combine(generatedfile.DirectoryName, newFileName);

PictureHandler.CreateThumbnailPicture(toFile, newFilePath, newWidth, newHeight);

string thumbRelativePath = System.Web.HttpContext.Current.Request.ApplicationPath
+ string.Format(@"/Content/Upload/Images/{0}", newFileName);

//返回原图和微缩图的网站相对路径
relativePath = string.Format("{0},{1}", relativePath, thumbRelativePath);

return relativePath;


 三、程序运行截图:

  上传前:



  上传后:



  四、 小结:

  我使用该方法主要是为了解决打印报表时由于图片大小没有合理的比例规范导致报表样式变形,同样该方法也适合网站或论坛由用户上传源图片生成微缩头像等。

  如果您感兴趣可以在这里下载本例DEMO

  最后希望本文能够帮助您解决开发中的类似问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: