.net 图片压缩
压缩图片方法:
/// <summary> 
    /// 生成缩略图 
    /// </summary> 
    /// <param name="originalImagePath">源图路径(物理路径)</param> 
    /// <param name="thumbnailPath">缩略图路径(物理路径)</param> 
    /// <param name="width">缩略图宽度</param> 
    /// <param name="height">缩略图高度</param> 
    /// <param name="mode">生成缩略图的方式</param>     
    public bool MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
    {
        bool result = true;
        Image originalImage = 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图片 
        Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
//新建一个画板 
        Graphics g = System.Drawing.Graphics.FromImage(bitmap);
//设置高质量插值法 
        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度 
        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空画布并以透明背景色填充 
        g.Clear(Color.Transparent);
//在指定位置并且按指定大小绘制原图片的指定部分 
        g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),
            new Rectangle(x, y, ow, oh),
            GraphicsUnit.Pixel);
try
        {
            //以jpg格式保存缩略图 
            bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
        }
        catch (System.Exception e)
        {
            result = false;
            throw e;
        }
        finally
        {
            originalImage.Dispose();
            bitmap.Dispose();
            g.Dispose();
        }
return result;
    }
.net 图片压缩的更多相关文章
- Golang 编写的图片压缩程序,质量、尺寸压缩,批量、单张压缩
		目录: 前序 效果图 简介 全部代码 前序: 接触 golang 不久,一直是边学边做,边总结,深深感到这门语言的魅力,等下要跟大家分享是最近项目 服务端 用到的图片压缩程序,我单独分离了出来,做成了 ... 
- 三款不错的图片压缩上传插件(webuploader+localResizeIMG4+LUploader)
		涉及到网页图片的交互,少不了图片的压缩上传,相关的插件有很多,相信大家都有用过,这里我就推荐三款,至于好处就仁者见仁喽: 1.名气最高的WebUploader,由Baidu FEX 团队开发,以H5为 ... 
- 前端构建工具之gulp(一)「图片压缩」
		前端构建工具之gulp(一)「图片压缩」 已经很久没有写过博客了,现下终于事情少了,开始写博吧 今天网站要做一些优化:图片压缩,资源合并等 以前一直使用百度的FIS工具,但是FIS还没有提供图片压缩的 ... 
- gulp图片压缩
		gulp图片压缩 网页性能优化,通常要处理图片,尤其图片量大的时候,更需要工具来批量处理,这里使用gulp,做个简单总结 image-resize压缩尺寸 var gulp = require('gu ... 
- Android  图片压缩、照片选择、裁剪,上传、一整套图片解决方案
		1.Android一整套图片解决方案 http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650820998&idx=1& ... 
- Java中图片压缩处理
		原文http://cuisuqiang.iteye.com/blog/2045855 整理文档,搜刮出一个Java做图片压缩的代码,稍微整理精简一下做下分享. 首先,要压缩的图片格式不能说动态图片,你 ... 
- android 图片压缩
		引用:http://104zz.iteye.com/blog/1694762 第一:我们先看下质量压缩方法: private Bitmap compressImage(Bitmap image) { ... 
- HTML5 CANVAS 实现图片压缩和裁切
		原文地址:http://leonshi.com/2015/10/31/html5-canvas-image-compress-crop/?utm_source=tuicool&utm_medi ... 
- C# 图片压缩
		/// <summary> /// 图片压缩方法 /// </summary> /// <param name="sF ... 
- Html5+asp.net mvc 图片压缩上传
		在做图片上传时,大图片如果没有压缩直接上传时间会非常长,因为有的图片太大,传到服务器上再压缩太慢了,而且损耗流量. 思路是将图片抽样显示在canvas上,然后用通过canvas.toDataURL方法 ... 
随机推荐
- 读阮一峰对《javascript语言精粹》的笔记,我有疑问。
			<javascript语言精粹>是一本很棒的书籍,其中作者在附录列出了12种他所认为的javascript语言中的糟粕. 我最近开始跟读前端前辈的博客,其中读到了阮一峰的<12种不宜 ... 
- C# 输入法
			C# 输入法 虽说输入法不是什么新事物,各种语言版本都有,不过在C#不常见:这就会给人一种误会:C#不能做!其实C#能不能做呢,答案是肯定的--三种方式都行:IMM.TSF以及外挂式.IMM这种就是调 ... 
- java算法  蓝桥杯(题+答案) 方格填数
			6.方格填数 (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案 ... 
- 基于 Koa平台Node.js开发的KoaHub.js的输出json到页面代码
			koahub-body-res koahub body res Format koa's respond json. Installation $ npm install koahub-body-re ... 
- 右键打开cmd命令出错
			今天想在E盘git clone一个工程项目下来,发现自己的window10上,出现了如下问题(不知道是不是是什么软件引起的冲突) 在度娘里面找了半天也没有解决问题,只有通过如下方法实现了 ctrl+r ... 
- Jdom读取XML文件
			学习Spring时,我们经常看到很多xml配置文件,Spring通过在配置文件中的配置,使用IOC(控制反转),从而实现代码的灵活性,本篇我就为大家介绍一种解析xml方式--Jdom 首先我们到Jdo ... 
- geoR文档翻译
			说来惭愧,很久没有更新自己的博客了.期间个人生活经历了很多变故,心理上的打击尤甚.加之没有取得好的科研成果,痛定思痛,还是下苦功夫多多学习. 最近对比验证各种方法的插值精度,用到了R语言地统计学包,由 ... 
- iOS开发之Block
			1.定义 (1) Block是OC中的一种数据类型,在iOS开发中被广泛使用 (2) ^是Block的特有标记 (3) Block的实现代码包含在{}之间 (4) 大多情况下,以内联inline函数的 ... 
- centos安装python2.7并安装easy_install,pip,ipython
			1.安装python 下载python2.7.10 # wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz # tar -z ... 
- 如何给sublime text3安装汉化包?so easy 哦
			这是我本人亲身测试过的,肯定有效,没用的话怪我咯. 首先安装package control,然后安装汉化包即可,很简单哦!!! 1.安装package control:打开sublime,使用快捷键: ... 
