最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#無(wú)損壓縮圖片

 更新時(shí)間:2017年04月13日 09:11:16   作者:漫天行  
本文主要介紹了C#無(wú)損壓縮圖片的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧

話不多說(shuō),請(qǐng)看代碼:

/// <summary>
    /// 根據(jù)指定尺寸得到按比例縮放的尺寸,返回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#中的或者操作符號(hào)
      {
        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>
    /// 無(wú)損壓縮圖片
    /// </summary>
    /// <param name="sFile">原圖片</param>
    /// <param name="dFile">壓縮后保存位置</param>
    /// <param name="dHeight">高度</param>
    /// <param name="dWidth">寬度</param>
    /// <param name="flag">壓縮質(zhì)量 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();
      //以下代碼為保存圖片時(shí),設(shè)置壓縮質(zhì)量
      EncoderParameters ep = new EncoderParameters();
      long[] qy = new long[1];
      qy[0] = flag;//設(shè)置壓縮的比例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();
      }
    }

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

最新評(píng)論

阿合奇县| 万盛区| 都兰县| 营口市| 乌拉特后旗| 仁寿县| 马鞍山市| 金华市| 克拉玛依市| 那曲县| 蒙自县| 溧水县| 大关县| 浙江省| 大连市| 祥云县| 开化县| 永福县| 饶阳县| 吉水县| 庆阳市| 石景山区| 云阳县| 漠河县| 汨罗市| 美姑县| 鲁甸县| 荣成市| 利辛县| 永丰县| 镶黄旗| 壶关县| 习水县| 晋州市| 奎屯市| 华蓥市| 黔江区| 蓝田县| 襄垣县| 遂平县| 游戏|