FileUpload控件上传图片并自动生成缩略图、带文字和图片的水印图

C# WinForm多图片上传带进度条demo C# WinForm多图片上传带进度条 阅读详情

1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="upfile.aspx.cs" Inherits="upfile_upfile" %>
2
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5<html xmlns="http://www.w3.org/1999/xhtml" >
6<head runat="server">
7 <title>无标题页</title>
8</head>
9<body>
10 <form id="form1" runat="server">
11 <div>
12    <asp:FileUpload ID="FileUpload1" runat="server" />
13    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传" /><br />
14    <asp:Label ID="Label1" runat="server"></asp:Label></div>
15 </form>
16</body>
17</html>



1using System;
2using System.Data;
3using System.Configuration;
4using System.Collections;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.WebControls;
9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11using System.IO;
12
13public partial class upfile_upfile : System.Web.UI.Page
14{
15    protected void Page_Load(object sender, EventArgs e)
16    { }
17
18    protected void Button1_Click(object sender, EventArgs e)
19    {
20        if (FileUpload1.HasFile)
21        {
22            string fileContentType = FileUpload1.PostedFile.ContentType;
23            if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg")
24            {
25                string name = FileUpload1.PostedFile.FileName; // 客户端文件路径
26
27                FileInfo file = new FileInfo(name);
28                string fileName = file.Name; // 文件名称
29                string fileName_s = "s_" + file.Name; // 缩略图文件名称
30                string fileName_sy = "sy_" + file.Name; // 水印图文件名称(文字)
31                string fileName_syp = "syp_" + file.Name; // 水印图文件名称(图片)
32                string webFilePath = Server.MapPath("file/" + fileName); // 服务器端文件路径
33                string webFilePath_s = Server.MapPath("file/" + fileName_s);  // 服务器端缩略图路径
34                string webFilePath_sy = Server.MapPath("file/" + fileName_sy); // 服务器端带水印图路径(文字)
35                string webFilePath_syp = Server.MapPath("file/" + fileName_syp); // 服务器端带水印图路径(图片)
36                string webFilePath_sypf = Server.MapPath("file/shuiyin.jpg"); // 服务器端水印图路径(图片)
37
38                if (!File.Exists(webFilePath))
39                {
40                    try
41                    {
42                        FileUpload1.SaveAs(webFilePath); // 使用 SaveAs 方法保存文件
43                        AddShuiYinWord(webFilePath, webFilePath_sy);
44                        AddShuiYinPic(webFilePath, webFilePath_syp, webFilePath_sypf);
45                        MakeThumbnail(webFilePath, webFilePath_s, 130, 130, "Cut"); // 生成缩略图方法
46                        Label1.Text = "提示:文件“" + fileName + "”成功上传,并生成“" + fileName_s + "”缩略图,文件类型为:" +
47                    FileUpload1.PostedFile.ContentType + ",文件大小为:" + FileUpload1.PostedFile.ContentLength + "B";
48                    }
49                    catch (Exception ex)
50                    {
51                        Label1.Text = "提示:文件上传失败,失败原因:" + ex.Message;
52                    }
53                }
54                else
55                {
56                    Label1.Text = "提示:文件已经存在,请重命名后上传";
57                }
58            }
59            else
60            {
61                Label1.Text = "提示:文件类型不符";
62            }
63        }
64    }
65    /**//**/
66    /**//// <summary>
67    /// 生成缩略图
68    /// </summary>
69    /// <param name="originalImagePath">源图路径(物理路径)</param>
70    /// <param name="thumbnailPath">缩略图路径(物理路径)</param>
71    /// <param name="width">缩略图宽度</param>
72    /// <param name="height">缩略图高度</param>
73    /// <param name="mode">生成缩略图的方式</param>  
74    public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
75    {
76        System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
77
78        int towidth = width;
79        int toheight = height;
80
81        int x = 0;
82        int y = 0;
83        int ow = originalImage.Width;
84        int oh = originalImage.Height;
85
86        switch (mode)
87        {
88            case "HW"://指定高宽缩放(可能变形)
89                break;
90            case "W"://指定宽,高按比例
91                toheight = originalImage.Height * width / originalImage.Width;
92                break;
93            case "H"://指定高,宽按比例
94                towidth = originalImage.Width * height / originalImage.Height;
95                break;
96            case "Cut"://指定高宽裁减(不变形)
97                if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
98                {
99                    oh = originalImage.Height;
100                    ow = originalImage.Height * towidth / toheight;
101                    y = 0;
102                    x = (originalImage.Width - ow) / 2;
103                }
104                else
105                {
106                    ow = originalImage.Width;
107                    oh = originalImage.Width * height / towidth;
108                    x = 0;
109                    y = (originalImage.Height - oh) / 2;
110                }
111                break;
112            default:
113                break;
114        }
115
116        //新建一个bmp图片
117        System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
118
119        //新建一个画板
120        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
121
122        //设置高质量插值法
123        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
124
125        //设置高质量,低速度呈现平滑程度
126        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
127
128        //清空画布并以透明背景色填充
129        g.Clear(System.Drawing.Color.Transparent);
130
131        //在指定位置并且按指定大小绘制原图片的指定部分
132        g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
133            new System.Drawing.Rectangle(x, y, ow, oh),
134            System.Drawing.GraphicsUnit.Pixel);
135
136        try
137        {
138            //以jpg格式保存缩略图
139            bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
140        }
141        catch (System.Exception e)
142        {
143            throw e;
144        }
145        finally
146        {
147            originalImage.Dispose();
148            bitmap.Dispose();
149            g.Dispose();
150        }
151    }
152
153    /**//**/
154    /**//// <summary>
155    /// 在图片上增加文字水印
156    /// </summary>
157    /// <param name="Path">原服务器图片路径</param>
158    /// <param name="Path_sy">生成的带文字水印的图片路径</param>
159    protected void AddShuiYinWord(string Path, string Path_sy)
160    {
161        string addText = "测试水印";
162        System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
163        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
164        g.DrawImage(image, 0, 0, image.Width, image.Height);
165        System.Drawing.Font f = new System.Drawing.Font("Verdana", 16);
166        System.Drawing.Brush b = new System.Drawing.SolidBrush(System.Drawing.Color.Blue);
167
168        g.DrawString(addText, f, b, 15, 15);
169        g.Dispose();
170
171        image.Save(Path_sy);
172        image.Dispose();
173    }
174
175    /**//**/
176    /**//// <summary>
177    /// 在图片上生成图片水印
178    /// </summary>
179    /// <param name="Path">原服务器图片路径</param>
180    /// <param name="Path_syp">生成的带图片水印的图片路径</param>
181    /// <param name="Path_sypf">水印图片路径</param>
182    protected void AddShuiYinPic(string Path, string Path_syp, string Path_sypf)
183    {
184        System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
185        System.Drawing.Image copyImage = System.Drawing.Image.FromFile(Path_sypf);
186        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
187        g.DrawImage(copyImage, new System.Drawing.Rectangle(image.Width - copyImage.Width, image.Height - copyImage.Height, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, System.Drawing.GraphicsUnit.Pixel);
188        g.Dispose();
189
190        image.Save(Path_syp);
191        image.Dispose();
192    }
193}
194

c#图片上传及图片展示Demo c#图片上传及展示Demo项目源码和说明文档 立即下载

相关推荐

C# FileUpload控件上传图片到数据库代码

C# FileUpload控件上传图片到数据库代码,FileUpload控件上传图片到数据库。

【JS】web端实现图片生成缩略图,纯js函数实现

主要函数generateThumbnails,传入一个File对象,生成的缩略图返回一个base64.web端实现图片生成缩略图,纯js函数实现。

飘逸者打瞌睡 2890

WebUploader 图片上传插件 前后端 C#代码

由于WebUploader官方提供的上传服务端的代码是PHP的,我这里根据前端的代码写了.NET版本的,已经测试过了可用,也希望对大家有用

图片上传并生成缩图

  protected void Button1_Click(object sender, EventArgs e)    {        if (FileUpload1.HasFile)        {            string fileContentType = FileUpload1.PostedFile.ContentType;            if (fileCont

杨军(yjinzaghi)的专栏 608

Python爬虫实战:5分钟搞定Web of Science文献批量导出与解析(附完整代码)

本文提供了一套利用Python爬虫技术,快速实现Web of Science文献批量提取与解析的完整方案。通过解析官方导出的HTML文件,结合BeautifulSoup和pandas库,可将文献数据自动转换为结构化的Excel/CSV表格,帮助科研人员高效管理文献信息,节省大量手动整理时间。

weixin_29050513的博客 1167

一文搞懂雷达脉冲压缩和匹配滤波器

为了解决传统单频脉冲雷达面临的作用距离和空间分辨力之间的矛盾,脉冲压缩理论被提出。在接收端设计一个和发射信号能够“共轭匹配”的网络来实现脉冲压缩。接收到的回波信号通过匹配滤波器时,滤波器的增益在信号越强的频率点越大;在信号越弱的频率点,增益越小,通过这样的方式使信号在时域更加集中。脉冲压缩技术大致可分为线性调频(LFM)和相位编码。其中LFM信号易于通过硬件或各种技术产生,但是进行匹配滤波后主旁瓣比高达13.2dB,在检测多个目标时,强目标的回波旁瓣可能会把弱小信号覆盖,导致弱小信号的检测受到影响。

FPGA入门到跑路 9938

C#实现图片上传小功能 支持市面上大部分格式的照片上传

【代码】C#实现图片上传小功能 支持市面上大部分格式的照片上传。

qq_64948696的博客 435

WSL2下用QEMU模拟ARM开发板:从编译uboot到调试全流程(附常见错误解决)

本文详细介绍了在WSL2环境下使用QEMU模拟ARM开发板的完整流程,包括uboot编译、内核调试等关键步骤。通过QEMU模拟vexpress-a9开发板,开发者可以高效搭建嵌入式开发环境,解决常见错误并提升开发效率。

solidity8miner的博客 286

.net安全上传图片

using System;using System.IO;using System.Web;using System.Web.UI.HtmlControls;using System.Drawing;namespace DotNet.Utilities{ /// /// 文件类型 /// public enum FileExtension { JPG = 255216, GIF = 7173, B

代码的专栏 1599

画了多年板子才搞懂:Allegro内电层负片连接,Thermal Relief和Anti-Pad避坑全解析

本文深入解析Allegro内电层设计中Thermal Relief与Anti-Pad的关键技术要点,帮助工程师避免常见设计陷阱。通过六层板实战案例,详细阐述负片连接逻辑、热风焊盘参数设计及隔离盘优化策略,提升PCB设计的可靠性与EMI性能。

weixin_28731223的博客 265

RV1126笔记二十七:MetaRTC6移植

MetaRTC6移植

6038

使用FileUpload控件上传图片并自动生成缩略图、带文字和图片的水印图

 使用FileUpload控件上传图片并自动生成缩略图、带文字和图片的水印图http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/1999/xhtml" >  无标题页                   using System;using System.Data;using Sy

golden的专栏 1594

YOLO26涨点改进 | 全网独家首发 主干改进篇 | TGRS 2025 | RepViT-TD,告别庞大骨干!YOLO26 + RepViT-TD轻量又强大,实现更快更准的小目标检测!

本文提出将RepViT-TD轻量级主干网络应用于YOLO26目标检测框架,以提升小目标检测性能。RepViT-TD通过优化计算资源分配,强化前两层高分辨率特征提取能力,在保持轻量化的同时(仅4.85M参数)显著提升微小目标的检测精度(AI-TODv2数据集AP50达54.6%)。文章详细介绍了三种主干改进方案(RepVit_ldy1/2/3)的代码实现,并提供了完整的YAML配置文件修改指南,使模型能高效部署于边缘设备。实验表明,该方法在计算复杂度(38.19G FLOPs)和检测精度间取得了良好平衡。

Ai缝合怪、助力小伙伴高效发论文 329

FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图的方法

   本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图。    实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程序中修改,本程序只是判断了“image/bmp”、“image/gif”、“image/pjpeg”三种类型。    /**/    ///     /// 生成缩略图    //

yanick技术博客 1373

手把手教你学Simulink--四翼无人机滑模控制器设计与仿真

四翼无人机(Quadcopter)滑模控制(Sliding Mode Control, SMC)是一种鲁棒性很强的非线性控制方法,特别适用于存在模型不确定性和外部扰动的情况。滑模控制器通过强制系统状态进入并保持在一个预定义的滑模面上,从而实现对期望轨迹或姿态的精确跟踪。在这个教程中,我们将使用MATLAB和Simulink来设计并仿真一个基于滑模控制策略的四翼无人机系统。

MHD0815的博客 184

手搓UDS Bootloader|全网独家复现0x10诊断会话控制、详解会话跳转规则与S3超时机制、助力ECU在线刷写、固件迭代、车规安全升级落地

在车载UDS诊断(ISO 14229)与Bootloader固件升级架构中,0x10诊断会话控制服务是所有高级诊断、固件刷写功能的前置核心与权限管控入口,属于UDS基础必实现服务。车载ECU通过分级会话模式,隔离常规故障诊断、高级标定、固件重编程等高、低权限操作,从协议层面保障车载电控系统的安全性与稳定性。多数嵌入式开发者开发UDS Bootloader时,仅简单实现会话切换报文应答,未吃透会话强制跳转规则、S3安全超时机制、会话权限绑定、APP在线刷写跳转逻辑。

getusushu的博客 465

使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图

http://www.cnblogs.com/weekzero/archive/2006/05/05/392003.html    本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图。    实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程序中修改,本程序只是判断了“image/bmp”、“ima

彼家有兔,狡兔三窟。 1363

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ASP.NET 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字水印和图片的水印图

  本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图。    实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程序中修改,本程序只是判断了“image/bmp”、“image/gif”、“image/pjpeg”三种类型。    代码如下:    upfile.aspx文件@ Page Lan

生活要快乐 - 魏言 1642

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字水印和图片的水印图

//本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图。//实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程序中修改,本程序只是判断了“image/bmp”、“image/gif”、“image/pjpeg”三种类型。//代码如下://upfile.aspx文件准备工作:1.控件:FileUp

swallows2010的专栏 474

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图...

作者博客:http://www.cnblogs.com/weekzero/archive/2006/05/05/392003.html 本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图。    实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程序中修改,本程序只是判断了“image/bmp”、“im...

weixin_34342207的博客 229

[转]使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图

本文转自http://jclhy.bokee.com/viewdiary.16148617.html(本人目前未对以下代码进行检测 只是直接转述 仅供参考)    本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图。    实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程序中修改,本程序只

freeliver54的专栏 387

使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图(转)

本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图。 实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程序中修改,本程序只是判断了“image/bmp”、“image/gif”、“image/pjpeg”三种类型。 代码如下: upfile.aspx文件@ Page La

但愿雨水皆化酒,只恨今生已非人 749
上一篇: .net使用FileUpLoad控件上传文件
下一篇: 经典民间偏方
yejunchen
博客等级 码龄19年 4粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值