本文介绍获取网络上的图片将其大小尺寸改成自己想要的

  1. /// <summary>
  2. /// 图片大小裁剪
  3. /// </summary>
  4. /// <param name="filePath"></param>
  5. /// <returns></returns>
  6. public byte[] ResizeImage(string filePath)
  7. {
  8.  
  9. WebRequest request = (WebRequest)HttpWebRequest.Create(filePath);
  10. WebResponse response = request.GetResponse();
  11. using (Stream stream = response.GetResponseStream())
  12. {
  13. Bitmap bm = (Bitmap)Image.FromStream(stream);
  14.  
  15. bm = GetThumbnail(bm, , );
  16. MemoryStream ms = new MemoryStream();
  17. bm.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
  18. byte[] bytes = ms.GetBuffer(); //byte[] bytes= ms.ToArray(); 这两句都可以,至于区别么,下面有解释
  19. ms.Close();
  20. return bytes;
  21. }
  22.  
  23. }
  1. /// <summary>
  2. /// 修改图片的大小
  3. /// </summary>
  4. /// <param name="b"></param>
  5. /// <param name="destHeight"></param>
  6. /// <param name="destWidth"></param>
  7. /// <returns></returns>
  8. public Bitmap GetThumbnail(Bitmap b, int destHeight, int destWidth)
  9. {
  10. System.Drawing.Image imgSource = b;
  11. System.Drawing.Imaging.ImageFormat thisFormat = imgSource.RawFormat;
  12. int sW = , sH = ;
  13. // 按比例缩放
  14. int sWidth = imgSource.Width;
  15. int sHeight = imgSource.Height;
  16. if (sHeight > destHeight || sWidth > destWidth)
  17. {
  18. if ((sWidth * destHeight) > (sHeight * destWidth))
  19. {
  20. sW = destWidth;
  21. sH = (destWidth * sHeight) / sWidth;
  22. }
  23. else
  24. {
  25. sH = destHeight;
  26. sW = (sWidth * destHeight) / sHeight;
  27. }
  28. }
  29. else
  30. {
  31. sW = sWidth;
  32. sH = sHeight;
  33. }
  34. Bitmap outBmp = new Bitmap(destWidth, destHeight);
  35. Graphics g = Graphics.FromImage(outBmp);
  36. g.Clear(Color.Transparent);
  37. // 设置画布的描绘质量
  38. g.CompositingQuality = CompositingQuality.HighQuality;
  39. g.SmoothingMode = SmoothingMode.HighQuality;
  40. g.InterpolationMode = InterpolationMode.HighQualityBicubic;
  41. g.DrawImage(imgSource, new Rectangle((destWidth - sW) / , (destHeight - sH) / , sW, sH), , , imgSource.Width, imgSource.Height, GraphicsUnit.Pixel);
  42. g.Dispose();
  43. // 以下代码为保存图片时,设置压缩质量
  44. EncoderParameters encoderParams = new EncoderParameters();
  45. long[] quality = new long[];
  46. quality[] = ;
  47. EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
  48. encoderParams.Param[] = encoderParam;
  49. imgSource.Dispose();
  50. return outBmp;
  51. }

asp.net mvc 前台调用

  1. /// <summary>
  2. /// 得到图像
  3. /// </summary>
  4. /// <param name="path"></param>
  5. /// <returns></returns>
  6. public FileResult GetAvator(string path)
  7. {
  8. return File(service.ResizeImage(path), "image/png");
  9. }

c# 改变图片的大小(w,h)的更多相关文章

  1. 使用thumbnailator不按照比例,改变图片的大小

    我们在平时的开发中,偶尔也会遇到图片处理的问题,比如图片的压缩,按比例改变图片的大小,不按比例改变图片的大小等等. 如果要自己去开发这样一套工具,我觉得大多数人都是做不到的,所以还是学会站在巨人的肩膀 ...

  2. 通过html5的range属性动态改变图片的大小

    range属性已经是很成熟的属性了,我们可以使用这个属性进行动态调整图片的宽度,其中原理在于通过不断获取range的值,并赋予给所需要的图片,进而达到动态改变图片的效果.下面贴出具体的代码,主要参照了 ...

  3. 使用jQuery动态改变图片显示大小

    当我们要显示后台传过来若干个尺寸不一的图片时,为了保证图片大小的一致性及比例的协调,需要动态改变图片显示尺寸.通过搜索,我们可以从网上找到实现此 功能的jQuery代码如下.这段代码可以使图片的大小保 ...

  4. img超出div width时, jQuery动态改变图片显示大小

    参考: 1. http://blog.csdn.net/roman_yu/article/details/6641911 2. http://www.cnblogs.com/zyzlywq/archi ...

  5. JavaScript--鼠标滚动改变图片大小

    鼠标滚动改变图片的大小: 原理:当鼠标滚动时改变了zoom的值: <!DOCTYPE HTML> <html> <head> <title>通过鼠标滚轮 ...

  6. java改变图片文件尺寸

    package test.common; import java.awt.Graphics; import java.awt.Image; import java.awt.image.Buffered ...

  7. 获取网络图片的大小 改变 图片色值 灰度什么的方法集合-b

    直接上代码了 头文件 // 图片处理 0 半灰色  1 灰度   2 深棕色    3 反色 +(UIImage*)imageWithImage:(UIImage*)image grayLevelTy ...

  8. UIImage扩展用代码直接改变图片大小

    以下内容属于转载 在iOS中,uiimage没有用于修改大小的属性,要在代码中改变uiimage图片的大小,需要扩展UIImage类,如下: 头文件: #import<UIKit/UIKit.h ...

  9. C#改变图片大小

    今天一女同事要做一个改变图片大小的功能,然后我就手写了几行代码,以后可能用得上 byte[] buffer = new byte[1]; //Byte转为Image对象 MemoryStream ms ...

随机推荐

  1. LeetCode 笔记26 Single Number II

    Given an array of integers, every element appears three times except for one. Find that single one. ...

  2. Linux及安全——程序破解

    Linux及安全——程序破解 由于我的Ubuntu的vi有故障,所以用kaili做. 运行原程序 1.反汇编代码,查看 objdump -d login 2.修改代码 vi login 转换为16进制 ...

  3. 信息安全系统设计基础_exp2

    北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全系统设计基础 班级:1353 姓名:吴子怡.郑伟 学号:20135313.20135322 指导教师: 娄嘉鹏 实验 ...

  4. ios 消息推送流程 转载

    iOS开发:推送通知简述及开发实践热度 1已有 706 次阅读 2013-10-15 09:23 |个人分类:经验之谈|系统分类:ios| IOS, 推送一.关于推送通知 推送通知,也被叫做远程通知, ...

  5. C#进阶系列——WebApi接口传参不再困惑:传参详解(转载)

    原文地址: http://www.cnblogs.com/landeanfen/p/5337072.html 前言:还记得刚使用WebApi那会儿,被它的传参机制折腾了好久,查阅了半天资料.如今,使用 ...

  6. 怎样写 OpenStack Neutron 的 Extension (二)

    接着之前一篇文章,再来谈谈 Extension 的具体实现问题.我使用的是本地数据库加远程API调用的方法,所以先要定义一下数据库中 myextension 如何存储.首先,我们可以在自己的 plug ...

  7. .NET 关键字

    一.base关键字 可以通过base关键字访问上一级父类方法的访问.静态static函数无法调用base 二.new 关键字new new有2个作用. new运算符   用来分配内存空间和初始化对象. ...

  8. SequoiaDB 系列源码分析调整

    犹豫我经验尚不够丰富,有大牛跟我说,以我这样定下的结构来分析源码,学习效果不太好. 应该先从程序的进程入口函数开始,慢慢的跟流程来分析.先通过系统的启动.退出来分析所用到的技术,像进程模型,线程模型等 ...

  9. 第二十四课:jQuery.event.remove,dispatch的源码解读

    本课还是来讲解一下jQuery是如何实现它的事件系统的.这一课我们先来讲一下jQuery.event.remove的源码解读. remove方法的目的是,根据用户传参,找到事件队列,从里面把匹配的ha ...

  10. 【HDU 2160】母猪的故事

    题 Description 话说现在猪肉价格这么贵,著名的ACBoy 0068 也开始了养猪生活.说来也奇怪,他养的猪一出生第二天开始就能每天中午生一只小猪,而且生下来的竟然都是母猪. 不过光生小猪也 ...