国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#無損壓縮圖片

2019-10-29 21:11:41
字體:
來源:轉載
供稿:網友

話不多說,請看代碼:

/// <summary>    /// 根據指定尺寸得到按比例縮放的尺寸,返回true表示以更改尺寸    /// </summary>    /// <param name="picWidth">圖片寬度</param>    /// <param name="picHeight">圖片高度</param>    /// <param name="specifiedWidth">指定寬度</param>    /// /// <param name="specifiedHeight">指定高度</param>    /// <returns>返回true表示以更改尺寸</returns>    private bool GetPicZoomSize(ref int picWidth, ref int picHeight, int specifiedWidth, int specifiedHeight)    {      int sW = 0, sH = 0;      Boolean isZoomSize = false;      //按比例縮放      Size tem_size = new Size(picWidth, picHeight);      if (tem_size.Width > specifiedWidth || tem_size.Height > specifiedHeight) //將**改成c#中的或者操作符號      {        if ((tem_size.Width * specifiedHeight) > (tem_size.Height * specifiedWidth))        {          sW = specifiedWidth;          sH = (specifiedWidth * tem_size.Height) / tem_size.Width;        }        else        {          sH = specifiedHeight;          sW = (tem_size.Width * specifiedHeight) / tem_size.Height;        }        isZoomSize = true;      }      else      {        sW = tem_size.Width;        sH = tem_size.Height;      }      picHeight = sH;      picWidth = sW;      return isZoomSize;    }    /// <summary>    /// 無損壓縮圖片    /// </summary>    /// <param name="sFile">原圖片</param>    /// <param name="dFile">壓縮后保存位置</param>    /// <param name="dHeight">高度</param>    /// <param name="dWidth">寬度</param>    /// <param name="flag">壓縮質量 1-100</param>    /// <returns></returns>    public bool GetPicThumbnail(string sFile, string dFile, int dHeight, int dWidth, int flag)    {      System.Drawing.Image iSource = System.Drawing.Image.FromFile(sFile);      ImageFormat tFormat = iSource.RawFormat;      int sW = iSource.Width, sH = iSource.Height;      GetPicZoomSize(ref sW, ref sH, dWidth, dHeight);      Bitmap ob = new Bitmap(dWidth, dHeight);      Graphics g = Graphics.FromImage(ob);      g.Clear(Color.WhiteSmoke);      g.CompositingQuality = CompositingQuality.HighQuality;      g.SmoothingMode = SmoothingMode.HighQuality;      g.InterpolationMode = InterpolationMode.HighQualityBicubic;      g.DrawImage(iSource, new Rectangle((dWidth - sW) / 2, (dHeight - sH) / 2, sW, sH), 0, 0, iSource.Width, iSource.Height, GraphicsUnit.Pixel);      g.Dispose();      //以下代碼為保存圖片時,設置壓縮質量      EncoderParameters ep = new EncoderParameters();      long[] qy = new long[1];      qy[0] = flag;//設置壓縮的比例1-100      EncoderParameter eParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qy);      ep.Param[0] = eParam;      try      {        ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();        ImageCodecInfo jpegICIinfo = null;        for (int x = 0; x < arrayICI.Length; x++)        {          if (arrayICI[x].FormatDescription.Equals("JPEG"))          {            jpegICIinfo = arrayICI[x];            break;          }        }        if (jpegICIinfo != null)        {          ob.Save(dFile, jpegICIinfo, ep);//dFile是壓縮后的新路徑        }        else        {          ob.Save(dFile, tFormat);        }        return true;      }      catch      {        return false;      }      finally      {        iSource.Dispose();        ob.Dispose();      }    }

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持VEVB武林網!


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高台县| 荥阳市| 武宣县| 噶尔县| 前郭尔| 汽车| 泰来县| 贺兰县| 双鸭山市| 光山县| 巍山| 家居| 精河县| 治多县| 禹州市| 杭州市| 南开区| 湟中县| 康马县| 喀喇| 长乐市| 江门市| 雷山县| 阳西县| 徐汇区| 桂阳县| 兴文县| 延安市| 揭东县| 沙坪坝区| 潞西市| 博客| 巧家县| 博白县| 穆棱市| 方山县| 嘉义县| 巴林右旗| 南部县| SHOW| 鄂托克旗|