1.Ajax无刷新上传图片,详情请阅我的这篇文章。(jquery + c# ashx)
2.C#位图处理 System.Drawing。
3.最新demo支持IE7,IE8,FireFox。
生成微缩图的核心方法:
CreateThumbnailPicture /// <summary> /// 图片微缩图处理 /// </summary> /// <param name="srcPath">源图片</param> /// <param name="destPath">目标图片</param> /// <param name="width">宽度</param> /// <param name="height">高度</param> public static void CreateThumbnailPicture(string srcPath, string destPath, int width, int height) { //根据图片的磁盘绝对路径获取 源图片 的Image对象 System.Drawing.Image img = System.Drawing.Image.FromFile(srcPath); //bmp: 最终要建立的 微缩图 位图对象。 Bitmap bmp = new Bitmap(width, height); //g: 绘制 bmp Graphics 对象 Graphics g = Graphics.FromImage(bmp); g.Clear(Color.Transparent); //为Graphics g 对象 初始化必要参数,很容易理解。 g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; //源图片宽和高 int imgWidth = img.Width; int imgHeight = img.Height; //绘制微缩图 g.DrawImage(img, new System.Drawing.Rectangle(0, 0, width, height), new System.Drawing.Rectangle(0, 0, imgWidth, imgHeight) , GraphicsUnit.Pixel); ImageFormat format = img.RawFormat; ImageCodecInfo info = ImageCodecInfo.GetImageEncoders().SingleOrDefault(i => i.FormatID == format.Guid); EncoderParameter param = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L); EncoderParameters parameters = new EncoderParameters(1); parameters.Param[0] = param; img.Dispose(); //保存已生成微缩图,这里将GIF格式转化成png格式。 if (format == ImageFormat.Gif) { destPath = destPath.ToLower().Replace(".gif", ".png"); bmp.Save(destPath, ImageFormat.Png); } else { if (info != null) { bmp.Save(destPath, info, parameters); } else { bmp.Save(destPath, format); } } img.Dispose(); g.Dispose(); bmp.Dispose(); }
下面介绍ashx中AJAX调用方法,我们在AJAX异步上传图片成功后对源图片进行"PS"。关键代码片段如下:
//上传成功后网站内源图片相对路径 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 见附件http://dl2.iteye.com/upload/attachment/0109/2590/06f8f52b-f228-35c3-9391-6b43bd18e3d6.rar
相关推荐
本教程将重点讨论如何在C#环境下,通过AJAX技术实现文件,包括图片和音乐的上传功能。 首先,理解AJAX上传的基本原理。传统的文件上传通常涉及整个页面的刷新,而AJAX允许我们仅更新部分网页内容,提高用户体验。...
通过以上步骤,我们可以实现C# Ajax调用WebAPI上传图片并传值的功能,同时结合图片相似度识别对比,为用户提供高效、流畅的交互体验。在实际开发中,还需要根据具体需求进行调整和优化,确保代码的健壮性和可扩展性...
接下来是“C#生成图片证件Demo”。在现实生活中,证件照片是个人身份识别的重要组成部分,而在数字化时代,生成电子版的证件图片则需要编程技术来实现。在C#中,我们可以利用System.Drawing命名空间中的类,如Image...
本文将详细介绍如何使用C#.NET实现这两种功能:生成普通二维码以及生成带有图片的二维码。 首先,生成普通二维码的基础步骤涉及使用第三方库,如ZXing.Net(Zebra Crossing的.NET版本)。ZXing是一个流行的开源库,...
在本C# Ajax Demo中,我们将探讨如何在C#后端与JavaScript前端之间实现异步通信,以提高用户体验。 首先,创建一个基于ASP.NET的Web应用程序项目。在Visual Studio中,选择"新建项目",然后在模板中找到"ASP.NET ...
"C# jQuery AJAX 预览并无刷新上传图片"的主题涵盖了多项技术,旨在提供流畅、直观的用户体验。以下是对这些知识点的详细阐述: 1. **jQuery**:jQuery是一个强大的JavaScript库,它简化了HTML文档遍历、事件处理、...
以上是关于“C#上传图片demo”涉及的主要技术点。这个demo提供了构建图片服务器的基本结构,开发者可以根据实际需求进行扩展,例如添加权限验证、图片预览、缩略图生成等功能。理解这些知识点后,你就能更好地实现和...
- 压缩包可能包含一个简单的Windows Forms或控制台应用程序,演示如何在UI上显示生成的二维码图片,并处理用户上传的二维码图片进行解码。 9. **调试与测试**: - 开发者可以通过修改数据和解码结果来测试代码的...
在结合C#语言和AJAX技术后,可以创建高效、响应迅速的网页应用,尤其在处理图片剪裁和上传这类任务时,可以提供流畅的用户体验。 在"ASP.Net+C#+AJax+图片剪载上传"的场景中,我们主要讨论以下几个关键知识点: 1....
本示例将详细介绍如何使用C#进行单张图片和批量图片的略微图生成,并提供DEMO代码供参考。 首先,我们需要引入必要的库,如System.Drawing命名空间,它包含了处理图像所需的类: ```csharp using System.Drawing; ...
在本"C#_GUID图片处理demo"项目中,开发者运用了C#编程语言来实现了一系列的图片处理功能,包括但不限于转换图片为黑白效果和柔化处理。这些功能在图像处理领域有着广泛的应用,例如照片编辑、艺术创作以及图像分析...
这个DEMO对于学习和理解如何在C#中使用EPPlus库来生成Excel文件非常有帮助,同时也方便了数据导出的需求,例如报表生成或数据备份。 总的来说,EPPlus是C#开发中处理Excel文件的强大工具,它简化了与Excel文件交互...
这个"图片上传及图片展示Demo"项目旨在提供一个示例,帮助开发者理解如何在C#中实现这些功能。下面我们将详细探讨相关的知识点。 1. 文件流操作:在C#中,文件上传通常涉及读取和处理文件流。当用户选择一个图片...
上传后,可能需要对图片进行缩略图生成、尺寸调整、质量优化等操作,以节省存储空间和提高加载速度。可以使用第三方库如ImageMagick或System.Drawing namespace进行图片处理。 9. **错误处理**: 必须妥善处理...
这个"C#二维码生成完整demo"提供了一个完整的示例,包括二维码的生成和读取功能,同时也允许用户自定义二维码的大小、颜色以及清晰度等属性。下面将详细介绍这个项目中的关键知识点。 1. **二维码基本原理**: ...
本项目“C#生成二维码demo”提供了一个基于C#语言的Windows Forms(WinForm)应用程序,用于演示如何在C#环境下创建和显示二维码。下面将详细介绍该项目中的关键知识点。 首先,C#是一种由微软开发的面向对象的编程...
C#二维码图片生成,二维码图片解码含源代码 比较适合初学和进阶学者,使用的是com.google.zxing.common库 将指定的文字或数字生成二维码图片 将生成的二维码图二内容进行解码成对应的文字或数字。 可进行设置图片的...
在C# WinForm开发中,可视化数据展示是一个重要的部分,特别是在数据分析、监控或者报告生成的场景下。ZedGraph库为开发者提供了一种强大的工具,用于创建各种图表,包括饼图、条形图和折线图。这个"C# winform使用...
C#与Ajax的结合在现代Web开发中扮演着重要角色,尤其在构建动态、无刷新的用户界面时。Ajax(Asynchronous JavaScript and XML)技术允许前端与后台进行异步通信,提高了网页的交互性和用户体验。在这个"完整C# Ajax...