c#上传并改变图片大小

上传图片到数据库,读取数据库中图片并显示(C#) 思路:建立流对象,将上传图片临时保存到byte数组中,再用SQL语句将其保存到数据库中说明:以下程序一切从简,实际用应用中应注意使用try等语句 创建表ImageStore,表结构如下图 主页面HTML如下 图片上传 阅读详情
protected void UpLoadPhoto_Click(object sender, ImageClickEventArgs 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 webFilePath = Server.MapPath("file/" + fileName); // 服务器端文件路径 
                string webFilePath_s = Server.MapPath("file/" + fileName_s);  // 服务器端缩略图路径 
                if (!File.Exists(webFilePath))
                {
                    try
                    {
                        FileUpload1.SaveAs(webFilePath); // 使用 SaveAs 方法保存文件 
                        MakeThumbnail(webFilePath, webFilePath_s, 100, 100, "Cut"); // 生成缩略图方法 
                        ScriptManager.RegisterStartupScript(UpdatePanel1, typeof(UpdatePanel), "scriptname", "alert('文件上传成功!')", true);
                        //this.RegisterStartupScript("hello", "<script>alert('文件上传成功!')</script>");
                        Tools.AddLog("0", "上传照片成功信息成功!");
                        imgPhoto.Visible = true;
                        imgPhoto.ImageUrl = webFilePath_s;
                        PhotoUrl = webFilePath_s;
                    }
                    catch (Exception ex)
                    {
                        Tools.AddLog("1", "上传照片成功信息失败!");
                        throw new Exception("提示:文件上传失败,失败原因" + ex.Message);
                    }
                }
                else
                {
                    this.RegisterStartupScript("hello", "<script>alert('图片已经存在,请重命名后上传!')</script>");
                }
            }
            else
            {
                this.RegisterStartupScript("hello", "<script>alert('文件类型不符!')</script>");
            }
        }
        else
        {
            ScriptManager.RegisterStartupScript(UpdatePanel1, typeof(UpdatePanel), "scriptname", "alert('请选择照片!')", true);
        }
    }
        /**/
    /// <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();
        }
    }


 

服务器开发之Unity3d(C#)图片上传下载 作者:oneym 本文地址:http://blog.youkuaiyun.com一、前言游戏中图片的上传下载是一个亘古不变的话题,这次在开发游戏服务器的过程中也不可避免的出现了图片下载和上传的问题。遇到了PNG图片下载完成后透明的部分变成黑色、图片上传附带验证信息、下载后文件不一样的问题。二、问题回顾服务器上面保存了一张完整的png图片,图片中有大片的透明部分。在图片下载到本地后出现透明部分变成了黑色。我是用的是下面的方法: 阅读详情

相关推荐

C#图像处理实践:如何改变图像大小

开发者可以在System.Drawing提供的基础之上,编写自定义的图像处理逻辑。例如,可以创建自定义的图像过滤器,或者根据特定业务需求开发图像格式转换器。这种扩展性允许开发者构建出高度专业化和优化的图像处理程序。接下来的章节将继续深入介绍如何在C#中使用System.Drawing进行图像加载、创建、调整以及保存等操作。我们将探讨如何处理图像的各个细节,以及如何优雅地管理图像处理相关的资源。

weixin_42351520的博客 1543

C#修改图片尺寸,不改变原有图片比例

C#使用BitMap修改图片尺寸,修改图片大小,不改变原有图片比例

weixin_50335725的博客 4541

C#改变图片分辨率

C#改变图片分辨率,并且保存报本地文件中

C#自动调整图片大小

代码对C#中图片的大小进行自动调整,根据实际的长和宽调整到最大长度和最大宽度,自动缩放

chen85635315的博客 1214

Ubuntu20.04下运行VINS系列:VINS-Mono、VINS-Fusion和GVINS

安装好了VINS-Mono所需的ROS noetic、Eigen3.4.0、Ceres2.10和OpenCV4.2.0等。VINS-Mono是在ROS melodic以及Ceres1的环境下开发的,因此需要适配高版本的环境。

zardforever123的博客 2万+

树莓派5首次开机保姆级教程(无显示器通过VNC连接树莓派桌面)

选择 Interface Options > VNC > Yes 启用服务。2.在Windows电脑上安装VNC软件。重启树莓派:sudo reboot。3.使用VNC远程访问树莓派桌面。

qq_34184505的博客 2349

上传图片并修改其大小(C#)

//上传图片并修改其大小 //thefile是一个File Field HTML 控件 thefile.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath("temp.png")); MemoryStream MemStream=new MemoryStream(); System.Drawing.Image imgOut

【seabird】·学无止境· 1276

文石NoteX3国行版安装 Google Play经验分享

文石NoteX3国行版安装 Google Play经验分享。

2301_80693261的博客 7599

C#上传图片并且缩放图片代码

using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.

taodiangongju的专栏 2726

【C语言项目合集】这十个入门必备练手项目,让C语言对你来说不再难学!

适合刚入门C语言的编程学习小白的十个练手项目,每个都很经典且实用,让你学完C语言不再迷茫!

kxtxdy的博客 3万+

kettle连接达梦资源库数据库插件

kettle自定义插件plugin database plugin 达梦插件 dm插件

weixin_42122126的博客 2169

判断上传图片大小

public ActionResult SaveEdit( HttpPostedFileBase img) { double size = img.ContentLength *1.0/ 1024 / 1024;                         if (size > 2)                         {

qq_34059693的博客 722

Qt C++ 串口调试助手

1. **串口配置**:支持自动检测可用串口,可配置波特率(9600~921600)、数据位(5~8)、校验位(无/奇/偶/标记/空格)、停止位(1/1.5/2)。- HEX 模式发送时,输入格式需为十六进制字符(0-9、A-F),可带空格(如 `01 A3 FF`)或不带空格(如 `01A3FF`)。// 发送模式:true=HEX,false=ASCII。// 字符串转HEX字节数组。ui->parity->addItems({"无", "奇校验", "偶校验", "标记校验", "空格校验"});

寒寒豆豆软件公司的博客 147

C#上传图片判断尺寸和大小,并上传图片

1.页面添加upload.aspx: 文件上传:<asp:FileUpload ID="FileUpload1" name="idFile" runat="server" onchange="document.getElementById('img1').src= window.URL.createObjectURL(document.getElementById('FileUpload1').files[0]);" /> 图片展示:<asp:Image ID="img1" runa.

LYfrighting的博客 2087

C#与倍福TwinCAT3通信实战:ADS协议封装与设备变量读写完整源码

倍福(Beckhoff)TwinCAT3 作为工业自动化领域主流的软PLC系统,其内置的ADS(Automation Device Specification)协议是实现上位机与TwinCAT3通信的核心标准。传统ADS通信开发存在门槛高(协议细节复杂)、稳定性差(缺乏统一异常处理)、复用性低(重复编码)等问题。本文基于 C# 技术栈,聚焦“协议封装标准化、变量读写易用化、通信稳定工业化”核心需求,提供一套完整的 ADS 协议封装方案与设备变量读写源码。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1987

PCL K4PCS算法实现点云粗配准【2026最新版】

K4PCS算法实现点云粗配准。博客长期更新,本文最近一次更新时间为:2026年5月4日。

点云侠的博客 42万+

C#小工具 ---- 压缩图片并指定图片大小

目录 简单的介绍 图像压缩类 简单的介绍 某宝店铺上传图片时,要求单张图片大小不能大于3M。而现在的手机像素越来越高,一张图片的字节数也越来越大。 在遇到需要大量上传图片时,那可真是苦不堪言呀。 为了满足本人懒惰的性格,就研究了一下可以根据所给的文件夹目录,自动查找所有的图片,并根据指定的压缩百分比和大小,批量压缩,并一比一存放在指定文件夹内。如图: 快压缩结束了 压缩完成弹出提...

心存敬畏 2337

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...

C#.Net 上传图片,限制图片大小,检查类型完整版

C#.Net 上传图片,限制图片大小,检查类型完整版源代码: 处理图片类,如检查图片大小,按宽度比例缩小图片  public class CImageLibrary{   public enum ValidateImageResult { OK, InvalidFileSize, InvalidImageSize }      //检查图片大小    public static Valid...

weixin_33908217的博客 714

计算机控制技术及应用

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C# ajax上传图片

前台页面 //上传图片 function UploadFile() { var file = $('#fileInput').files[0] if(CheckFile(file,1)!='通过') { return; } var formdata = new FormData(); //文件 formdata.appe...

weixin_42143410的博客 1691

C# MVC Web项目和Layui多图上传

⚠️注意:图片不可大于3707.6kb 效果图: public class UploadController : Controller { public ActionResult upload() { return View(); } #region 文件处理 /// <summary> /// 上传附件 到临时文件夹 /// </sum

在下GuiChun 641

C#客户端上传图片到远程服务器(单张上传)

C#图片上传服务器

weixin_42151589的博客 3338

一个可以使得上传的图片大小按照指定的宽度,高度自动按比例进行缩放的函数(C#)

一个可以使得上传的图片大小按照指定的宽度,高度自动按比例进行缩放,生成的JPG还可以指定其图片的压缩比。很实用。 public string upimgscalesave(HttpPostedFile UpFile,string id,int imgw,string bcwz)//UpFile HtmlInputFile控件类//id 上传后保存的文件名//改变的图片宽度,高度吗

记事本 2480

使用Layui上传图片,并进行压缩

在工作中使用到layui,发现其上传功能并不是很适用于自己的项目。故此,借用其上传功能,自己将图片压缩并上传.Layui 上传图片官方文档:www.layui.com/doc/modules…HTML: <button type="button" class="layui-btn" id="test1"> <i class="layui-icon">&#xe67...

weixin_33866037的博客 1478
上一篇: 读取excel到sql
下一篇: c#上传大文件
星梦枫
博客等级 码龄16年 2粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值