asp.net上传图片文件自动修改图片大小代码

  #region 图片缩放
      /// <summary>
        /// 图片缩放
      /// </summary>
      /// <param name="savePath">图片相对路径</param>
      /// <param name="fileName">图片名称</param>
      /// <param name="destWidth">缩放宽度</param>
      /// <param name="destHeight">高度</param>
       /// <param name="type">1--固定缩放;2--按比例缩放;3--指定宽度,宽度大于指定宽度按指定宽度进行等比缩放,小于指定宽度按原图大小上传;4--原图直接上传</param>
       /// <returns></returns>
        public static void ReducesPic(string savePath,string fileName, int destWidth, int destHeight, int type)
        {
            if (!fileName.Equals(""))
            {
                string Allpath = System.Web.HttpContext.Current.Server.MapPath("/") + savePath;
                //生成原图
                System.IO.Stream stream = System.IO.File.OpenRead(Allpath + fileName);
                System.Drawing.Image oImage = System.Drawing.Image.FromStream(stream);
                stream.Close();
                stream.Dispose();

                System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);

                string fileType = fileName.Substring(fileName.LastIndexOf(".") + 1);
                int oWidth = oImage.Width;
                int oHeight = oImage.Height;

                int tWidth = destWidth; //设置缩略图初始宽度
                int tHeight = destHeight; //设置缩略图初始高度

                //按指定宽高缩放
                if (type == 1)
                {
                    tWidth = destWidth;
                    tHeight = destHeight;
                }
                //按比例计算出缩略图的宽度和高度
                else if (type == 2)
                {
                    if (oWidth > tWidth || oHeight > tHeight)
                    {
                        if (oWidth >= oHeight)
                        {
                            tHeight = (int)Math.Floor(Convert.ToDouble(oHeight) * (Convert.ToDouble(tWidth) / Convert.ToDouble(oWidth)));
                        }
                        else
                        {
                            tWidth = (int)Math.Floor(Convert.ToDouble(oWidth) * (Convert.ToDouble(tHeight) / Convert.ToDouble(oHeight)));
                        }
                    }
                    else
                    {
                        tWidth = oWidth; //原图宽度
                        tHeight = oHeight; //原图高度
                    }
                }
                //指定宽度,宽度大于指定宽度按指定宽度进行等比缩放,小于指定宽度按原图大小上传
                else if (type == 3)
                {
                    if (oWidth >= tWidth)
                    {
                        if (oWidth >= oHeight)
                        {
                            tHeight = (int)Math.Floor(Convert.ToDouble(oHeight) * (Convert.ToDouble(tWidth) / Convert.ToDouble(oWidth)));
                        }
                        else
                        {
                            tWidth = (int)Math.Floor(Convert.ToDouble(oWidth) * (Convert.ToDouble(tHeight) / Convert.ToDouble(oHeight)));
                        }
                    }
                    else
                    {
                        tWidth = oWidth; //原图宽度
                        tHeight = oHeight; //原图高度
                    }

                }
                else
                {
                    tWidth = oWidth; //原图宽度
                    tHeight = oHeight; //原图高度
                }
                //生成缩略原图
                oImage = oImage.GetThumbnailImage(tWidth, tHeight, callb, IntPtr.Zero);
                oImage.Save(Allpath+fileName);

            }

        }
        public static bool ThumbnailCallback() { return false; }
        #endregion

  

时间: 2024-08-11 01:21:13

asp.net上传图片文件自动修改图片大小代码的相关文章

Ubuntu Linux 批量修改图片大小以及文件重命名

0x00 本文属于随笔, 仅供作者学习记录. 0x01 批量修改图片大小: [email protected]:~/$ find ./ -name '*.jpg' -exec convert -resize 220X520! {} {} \; 备注: 上述命令中, find 路径 -name 匹配.jpg后缀的文件 -exec 对find结果执行convert命令 后面是convert参数, 如果没有安装convert, sudo apt-get install convert安装即可. -re

java关于图片处理修改图片大小

最近做了一个关于图片浏览的内容.因为图片都是一些证件的资料的扫描件所以比较大,对系统的影响也是非常之大的,有很大可能直接把系统干死.那么我是这么处理的,给大家分享一下.如果大家有好的方案的话一定要早点告诉我. 需求简单介绍: 上传文件是压缩包,但是到查看资料的时候压缩包可下载本地看,同时也可以在系统中直接在线浏览. 设计方案 1 营业部用户上传图片文件压缩包文件到综合业务系统tomcat服务器,系统在tomcat服务器将压缩文件解压到系统临时目录. 2 系统分析解压的图片文件(文件名上有分类和序

word中批量修改图片大小的两个方法

1.只需要图片符合文档大小即可 插入图片,word自动处理图片大小. 按插入 按图片 效果: 2.需要图片具体的大小 把图片复制,直接在word中粘贴,图片以原始大小显示 按视图 按宏,查看宏,输入setpicsize,按创建 复制并粘贴以下程序 并按调试+编译,看看程序有没有错误 Sub setpicsize()    Dim n '图片个数    Dim Height, Weight    Height = 300    Weight = 200    On Error Resume Nex

Cocos2d-x Android.mk文件自动修改器

做cocos2d-x的项目,一般是用电脑进行开发,然后移植到手机平台上.移植到安卓手机需要用eclipse等工具重新编译打包成apk文件.而用eclipse打包的话,要把项目的cpp文件一条条加入到Android.mk配置中,文件少无所谓,但如果文件很多,手工添加就比较麻烦了,特别是有些时候,要和原先的Andriod.mk配置做比较,本次新增了哪些文件,然后把新增的文件添加进去. 总之,打包成apk,手工修改Android.mk配置很麻烦.所以,我做了一个自动修改器.如下图: 我的Cocos2d

django上传图片简单验证以及自动修改图片名称

django实现文件(图片)上传之后自动修改名称以及页面上传图片时的各种提醒: 1.先在你项目中添加一个文件夹如:system 在文件夹下添加__init__.py 和storage.py文件,并在storage.py中添加如下代码: # -*- coding:utf-8 -*- from django.core.files.storage import FileSystemStorage from django.http import HttpResponse class ImageStora

python 批量修改图片大小

一个文件夹下面有好多图片格式是jpg大小是1920*1080,把它们处理成1280*720并按原先图片的名保存在另一路径下这里首先要找到给定路径下所有的图片文件,然后在修改图片文件的大小,这里用到PIL和glob两个库: # -*- coding: utf-8 -*- import os import glob from PIL import Image import os.path '''修改图片文件大小jpgfile:图片文件:savedir:修改后要保存的路径''' def convert

批量修改图片大小

使用方法: 保存下面代码为imgzoom.htc,找个目录放好,我是放在根目录下的; 以下是代码: <script language="javascript">  var _width = element.width;  var _hieght = element.height;  var _maxpixel = _width;  var _which = "w"; var maxwidth = 700;  var maxheight = 525;   

ASP.NET - 多文件上传,纯代码,不使用插件

解决方案: 前段代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MultiFileUpload.aspx.cs" Inherits="WebApplication1.MultiFileUpload1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/x

[Word]中批量修改图片大小和缩放比例方法

最近小编遇到一个问题:需要将一篇word文档中的所有图片全部缩小比例.一张张改太麻烦了.于是从网上搜罗了一下,还真找到了解决办法.需要注意的地方就是注意厘米与像素的换算关系.一般情况下1厘米=28px .这个换算关系其实可以用计算器计算出来.计算公式为图片改变之后的像素除以改变之后图片的大小厘米.