zoukankan      html  css  js  c++  java
  • c# 改变图片的大小(w,h)

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

       /// <summary>
            /// 图片大小裁剪
            /// </summary>
            /// <param name="filePath"></param>
            /// <returns></returns>
            public byte[] ResizeImage(string filePath)
            {
    
                WebRequest request = (WebRequest)HttpWebRequest.Create(filePath);
                WebResponse response = request.GetResponse();
                using (Stream stream = response.GetResponseStream())
                {
                    Bitmap bm = (Bitmap)Image.FromStream(stream);
    
                    bm = GetThumbnail(bm, 50, 40);
                    MemoryStream ms = new MemoryStream();
                    bm.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
                    byte[] bytes = ms.GetBuffer();  //byte[]   bytes=   ms.ToArray(); 这两句都可以,至于区别么,下面有解释
                    ms.Close();
                    return bytes;
                }
    
            }
      /// <summary>
            /// 修改图片的大小
            /// </summary>
            /// <param name="b"></param>
            /// <param name="destHeight"></param>
            /// <param name="destWidth"></param>
            /// <returns></returns>
            public Bitmap GetThumbnail(Bitmap b, int destHeight, int destWidth)
            {
                System.Drawing.Image imgSource = b;
                System.Drawing.Imaging.ImageFormat thisFormat = imgSource.RawFormat;
                int sW = 0, sH = 0;
                // 按比例缩放           
                int sWidth = imgSource.Width;
                int sHeight = imgSource.Height;
                if (sHeight > destHeight || sWidth > destWidth)
                {
                    if ((sWidth * destHeight) > (sHeight * destWidth))
                    {
                        sW = destWidth;
                        sH = (destWidth * sHeight) / sWidth;
                    }
                    else
                    {
                        sH = destHeight;
                        sW = (sWidth * destHeight) / sHeight;
                    }
                }
                else
                {
                    sW = sWidth;
                    sH = sHeight;
                }
                Bitmap outBmp = new Bitmap(destWidth, destHeight);
                Graphics g = Graphics.FromImage(outBmp);
                g.Clear(Color.Transparent);
                // 设置画布的描绘质量         
                g.CompositingQuality = CompositingQuality.HighQuality;
                g.SmoothingMode = SmoothingMode.HighQuality;
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                g.DrawImage(imgSource, new Rectangle((destWidth - sW) / 2, (destHeight - sH) / 2, sW, sH), 0, 0, imgSource.Width, imgSource.Height, GraphicsUnit.Pixel);
                g.Dispose();
                // 以下代码为保存图片时,设置压缩质量     
                EncoderParameters encoderParams = new EncoderParameters();
                long[] quality = new long[1];
                quality[0] = 100;
                EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
                encoderParams.Param[0] = encoderParam;
                imgSource.Dispose();
                return outBmp;
            }

     asp.net mvc 前台调用

     /// <summary>
            /// 得到图像
            /// </summary>
            /// <param name="path"></param>
            /// <returns></returns>
            public FileResult GetAvator(string path)
            {
                return File(service.ResizeImage(path), "image/png");
            }
  • 相关阅读:
    bzoj 1030 [JSOI2007]文本生成器
    Swift 学习笔记 (闭包)
    Swift 学习笔记 (函数)
    HTML 学习笔记 JQueryUI(Interactions,Widgets)
    HTML 学习笔记 JQuery(表单,表格 操作)
    HTML 学习笔记 JQuery(animation)
    HTML 学习笔记 JQuery(盒子操作)
    HTML 学习笔记 JQuery(事件)
    HTML 学习笔记 JQuery(DOM 操作3)
    HTML 学习笔记 JQuery(DOM 操作2)
  • 原文地址:https://www.cnblogs.com/nele/p/5039092.html
Copyright © 2011-2022 走看看