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

Myupload 一个使用方便的上传文件到服务器的类 可以帮你上传文件到你的服务器。 安装、使用、修改都很方便. 立即下载


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

准备工作:

1.控件:FileUpload1、Label1、Button1

2.水印图片file/shuiyin.jpg


/*<%@ Page Language="C#" AutoEventWireup="true" CodeFile="upfile.aspx.cs" Inherits="upfile_upfile" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传" /><br />
        <asp:Label ID="Label1" runat="server"></asp:Label></div>
    </form>
</body>
</html>*/
//upfile.aspx.cs文件
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

public partial class upfile_upfile : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    { }

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            string fileContentType = FileUpload1.PostedFile.ContentType;
            if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg")
            {
                string name = FileUpload1.PostedFile.FileName;                  // 客户端文件路径

                FileInfo file = new FileInfo(name);
                string fileName = file.Name;                                    // 文件名称
                string fileName_s = "s_" + file.Name;                           // 缩略图文件名称
                string fileName_sy = "sy_" + file.Name;                         // 水印图文件名称(文字)
                string fileName_syp = "syp_" + file.Name;                       // 水印图文件名称(图片)
                string webFilePath = Server.MapPath("file/" + fileName);        // 服务器端文件路径
                string webFilePath_s = Server.MapPath("file/" + fileName_s);  // 服务器端缩略图路径
                string webFilePath_sy = Server.MapPath("file/" + fileName_sy); // 服务器端带水印图路径(文字)
                string webFilePath_syp = Server.MapPath("file/" + fileName_syp); // 服务器端带水印图路径(图片)
                string webFilePath_sypf = Server.MapPath("file/shuiyin.jpg"); // 服务器端水印图路径(图片)

                if (!File.Exists(webFilePath))
                {
                    try
                    {
                        FileUpload1.SaveAs(webFilePath);                                // 使用 SaveAs 方法保存文件
                        AddShuiYinWord(webFilePath, webFilePath_sy);
                        AddShuiYinPic(webFilePath, webFilePath_syp, webFilePath_sypf);
                        MakeThumbnail(webFilePath, webFilePath_s, 130, 130, "Cut");     // 生成缩略图方法
                        Label1.Text = "提示:文件“" + fileName + "”成功上传,并生成“" + fileName_s + "”缩略图,文件类型为:" + FileUpload1.PostedFile.ContentType + ",文件大小为:" + FileUpload1.PostedFile.ContentLength + "B";
                    }
                    catch (Exception ex)
                    {
                        Label1.Text = "提示:文件上传失败,失败原因:" + ex.Message;
                    }
                }
                else
                {
                    Label1.Text = "提示:文件已经存在,请重命名后上传";
                }
            }
            else
            {
                Label1.Text = "提示:文件类型不符";
            }
        }
    }
    /**/
    /**/
    /**/
    /// <summary>
    /// 生成缩略图
    /// </summary>
    /// <param name="originalImagePath">源图路径(物理路径)</param>
    /// <param name="thumbnailPath">缩略图路径(物理路径)</param>
    /// <param name="width">缩略图宽度</param>
    /// <param name="height">缩略图高度</param>
    /// <param name="mode">生成缩略图的方式</param>   
    public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
    {
        System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);

        int towidth = width;
        int toheight = height;

        int x = 0;
        int y = 0;
        int ow = originalImage.Width;
        int oh = originalImage.Height;

        switch (mode)
        {
            case "HW"://指定高宽缩放(可能变形)               
                break;
            case "W"://指定宽,高按比例                   
                toheight = originalImage.Height * width / originalImage.Width;
                break;
            case "H"://指定高,宽按比例
                towidth = originalImage.Width * height / originalImage.Height;
                break;
            case "Cut"://指定高宽裁减(不变形)               
                if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
                {
                    oh = originalImage.Height;
                    ow = originalImage.Height * towidth / toheight;
                    y = 0;
                    x = (originalImage.Width - ow) / 2;
                }
                else
                {
                    ow = originalImage.Width;
                    oh = originalImage.Width * height / towidth;
                    x = 0;
                    y = (originalImage.Height - oh) / 2;
                }
                break;
            default:
                break;
        }

        //新建一个bmp图片
        System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);

        //新建一个画板
        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);

        //设置高质量插值法
        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

        //设置高质量,低速度呈现平滑程度
        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

        //清空画布并以透明背景色填充
        g.Clear(System.Drawing.Color.Transparent);

        //在指定位置并且按指定大小绘制原图片的指定部分
        g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
            new System.Drawing.Rectangle(x, y, ow, oh),
            System.Drawing.GraphicsUnit.Pixel);

        try
        {
            //以jpg格式保存缩略图
            bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
        }
        catch (System.Exception e)
        {
            throw e;
        }
        finally
        {
            originalImage.Dispose();
            bitmap.Dispose();
            g.Dispose();
        }
    }

    /**/
    /**/
    /**/
    /// <summary>
    /// 在图片上增加文字水印
    /// </summary>
    /// <param name="Path">原服务器图片路径</param>
    /// <param name="Path_sy">生成的带文字水印的图片路径</param>
    protected void AddShuiYinWord(string Path, string Path_sy)
    {
        string addText = "测试水印";
        System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
        g.DrawImage(image, 0, 0, image.Width, image.Height);
        System.Drawing.Font f = new System.Drawing.Font("Verdana", 16);
        System.Drawing.Brush b = new System.Drawing.SolidBrush(System.Drawing.Color.Blue);

        g.DrawString(addText, f, b, 15, 15);
        g.Dispose();

        image.Save(Path_sy);
        image.Dispose();
    }

    /**/
    /**/
    /**/
    /// <summary>
    /// 在图片上生成图片水印
    /// </summary>
    /// <param name="Path">原服务器图片路径</param>
    /// <param name="Path_syp">生成的带图片水印的图片路径</param>
    /// <param name="Path_sypf">水印图片路径</param>
    protected void AddShuiYinPic(string Path, string Path_syp, string Path_sypf)
    {
        System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
        System.Drawing.Image copyImage = System.Drawing.Image.FromFile(Path_sypf);
        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
        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);
        g.Dispose();

        image.Save(Path_syp);
        image.Dispose();
    }
}
 

FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印 FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印.txt 立即下载

相关推荐

Win10环境下VS2019离线部署OnnxRuntime的完整指南

本文提供了在Windows 10系统下,为Visual Studio 2019进行OnnxRuntime离线部署的完整教程。针对网络受限环境,详细讲解了如何获取正确的离线安装包、配置本地NuGet源,并逐步指导项目配置与测试,确保AI模型在C++环境中顺利运行。

weixin_29205061的博客 401

fileupload控件的属性_FileUpload上传控件用法详解

FileUpload 类显示一个文本框控件和一个浏览按钮,使用户可以选择客户端上的文件并将它上载到 Web 服务器。用户通过在控件的文本框中输入本地计算机上文件的完整路径(例如,C:\MyFiles\TestFile.txt )来指定要上载的文件。用户也可以通过单击“浏览” 按钮,然后在“选择文件” 对话框中定位文件来选择文件。注意:FileUpload 控件设计为仅用于部分页面呈现期间的回发情况...

weixin_30986079的博客 1115

手把手教你用Qt和QScada框架,从零搭建一个简易的工业组态监控界面

本文详细介绍了如何使用Qt和QScada框架从零搭建工业组态监控界面,涵盖环境配置、界面设计、动态数据绑定及高级功能实现。通过实战案例演示,帮助开发者快速掌握SCADA系统开发技巧,提升工业自动化项目的开发效率。

weixin_32932149的博客 340

【亲测免费】 MyUploader:高效文件上传的利器

MyUploader:高效文件上传的利器 在数字化时代,文件上传功能已成为众多应用不可或缺的一部分。无论是个人博客、企业网站还是大型电商平台,高效、稳定的文件上传机制都是提升用户体验的关键。今天,我们将深入介绍一个开源项目——MyUploader,它以其强大的功能和优雅的实现,成为了文件上传领域的佼佼者。 项目介绍 MyUploader是一个前后端分离的文件上传解决方案,涵盖了单文件上传、多文件上...

gitblog_00715的博客 641

Qt Installer Framework 简单使用

qt installer framework 简单使用

qq_42815643的博客 2576

【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能

在探讨计算机性能优化的旅程中,我们常常被引导去关注算法的复杂度、代码的优化,或是更高效的数据结构。然而,有一个经常被忽视的角色在幕后默默地影响着程序的运行效率——那就是缓存(Cache)。正如哲学家亨利·戴维·梭罗在《瓦尔登湖》中所说:“细节是造成美丽的源泉”,在软件开发的世界里,对缓存的理解和优化,就是那些决定程序性能优雅与否的细节。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 3736

FileUpload的使用

一、文件的上传和下载概述(借助第三方apache的上传组件commons-fileupload实现) 前端页面必须存在的代码: a、提供form表单,method必须是post b、form表单的enctype属性必须是multipart/form-data c、提供input type=”file”类的上传输入域 &amp;lt;input type=&quot;file&quot; name=&quot;f&quot;&amp;gt; 关...

仲夏风灯 2万+

博途PLC模糊PID控制(量化因子和比例因子)

参数"量化因子和比例因子",都是为了对清晰值进行比例变换而设置的,其作用是使变量按一定比例进行放大或缩小,以便和我们的模糊论域相匹配完成一一映射。这种变换对整个系统的工作性能也是有影响的。(其实相当于额外引入了比例作用,所以说模糊PID的调节是个系统工程)。限于本人能力,文中难免出现错误和不足,欢迎大家批评和指正。博途PLC的模糊PID控制完整算法可以参看下面这篇文章博途PLC模糊PID控制详解(SCL完整源代码+参数)_RXXW_Dor的博客-优快云博客。......

RXXW_Dor的博客 5270

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

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

Yemy的专栏 1334

智能车图像处理19-进阶篇11--斜入十字补线

这篇文章主要讲述智能车竞赛中如何对于斜入十字进行补线操作。

taiyuezyh的博客 7488

DeerFlow 系列教程 第十六篇 | 实战案例一——用 DeerFlow 进行深度研究

在日常使用 AI Agent 时,最常见的需求之一就是对某个主题进行全面、系统的研究。多源信息采集——不能只依赖单次搜索,需要从多个角度搜索不同来源交叉验证——不同来源的信息需要相互印证,避免单一信源的偏差结构化输出——最终产出的不是零散的信息片段,而是有组织的研究报告传统做法是人工反复搜索、阅读、整理。传统手工研究: DeerFlow 深度研究:人工搜索 → 阅读页面 → 记笔记 提交研究主题│ │▼ ▼换关键词 → 再搜索 → 再阅读 ┌──────────────────┐。

weixin_43674738的博客 168

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

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

彼家有兔,狡兔三窟。 1363

开源项目-智能算法中台管理系统

智能算法中台管理系统,系统主要有样本中心,算法中心,模型中心等模块

u010479989的博客 3003

使用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

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

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

yanick技术博客 1373

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

生活要快乐 - 魏言 1642

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

123http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">45http://www.w3.org/1999/xhtml" >67 无标题页8910 11 12    13    14    15 16171using System;2using System.Data;3using System.Configuration;4using

yejunchen的专栏 571

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

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

但愿雨水皆化酒,只恨今生已非人 749

使用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

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

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

weixin_39608300的博客 219
上一篇: asp.net常用技巧
下一篇: asp.net时间格式大全
swallows2010
博客等级 码龄17年 4粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值