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

C#實(shí)現(xiàn)縮放和剪裁圖片的方法示例

 更新時間:2017年06月26日 11:12:19   作者:songkexin  
這篇文章主要介紹了C#實(shí)現(xiàn)縮放和剪裁圖片的方法,結(jié)合實(shí)例形式分析了C#針對圖片屬性的縮放、裁剪等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了C#實(shí)現(xiàn)縮放和剪裁圖片的方法。分享給大家供大家參考,具體如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
namespace Project
{
  class ImageOperation
  {
    /// <summary>
    /// Resize圖片
    /// </summary>
    /// <param name="bmp">原始Bitmap </param>
    /// <param name="newW">新的寬度</param>
    /// <param name="newH">新的高度</param>
    /// <param name="Mode">保留著,暫時未用</param>
    /// <returns>處理以后的圖片</returns>
    public static Bitmap ResizeImage(Bitmap bmp, int newW, int newH, int Mode)
    {
      try
      {
        Bitmap b = new Bitmap(newW, newH);
        Graphics g = Graphics.FromImage(b);
        // 插值算法的質(zhì)量
        g.InterpolationMode = InterpolationMode.HighQualityBicubic;
        g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
        g.Dispose();
        return b;
      }
      catch
      {
        return null;
      }
    }
    /// <summary>
    /// 剪裁 -- 用GDI+
    /// </summary>
    /// <param name="b">原始Bitmap</param>
    /// <param name="StartX">開始坐標(biāo)X</param>
    /// <param name="StartY">開始坐標(biāo)Y</param>
    /// <param name="iWidth">寬度</param>
    /// <param name="iHeight">高度</param>
    /// <returns>剪裁后的Bitmap</returns>
    public static Bitmap Cut(Bitmap b, int StartX, int StartY, int iWidth, int iHeight)
    {
      if (b == null)
      {
        return null;
      }
      int w = b.Width;
      int h = b.Height;
      if (StartX >= w || StartY >= h)
      {
        return null;
      }
      if (StartX + iWidth > w)
      {
        iWidth = w - StartX;
      }
      if (StartY + iHeight > h)
      {
        iHeight = h - StartY;
      }
      try
      {
        Bitmap bmpOut = new Bitmap(iWidth, iHeight, PixelFormat.Format24bppRgb);
        Graphics g = Graphics.FromImage(bmpOut);
        g.DrawImage(b, new Rectangle(0, 0, iWidth, iHeight), new Rectangle(StartX, StartY, iWidth, iHeight), GraphicsUnit.Pixel);
        g.Dispose();
        return bmpOut;
      }
      catch
      {
        return null;
      }
    }
  }
}

目標(biāo)其實(shí)都是new Rectangle(0, 0, iWidth, iHeight),縮放算法把整個原始圖都往目標(biāo)區(qū)域里塞new Rectangle(0, 0, bmp.Width, bmp.Height),而剪裁只是把原始區(qū)域上等寬等高的那個區(qū)域new Rectangle(StartX, StartY, iWidth, iHeight)1:1的塞到目標(biāo)區(qū)域里。

更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#圖片操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計入門教程》及《C#程序設(shè)計之線程使用技巧總結(jié)

希望本文所述對大家C#程序設(shè)計有所幫助。

相關(guān)文章

  • WinFrom中l(wèi)abel背景透明的實(shí)現(xiàn)方法

    WinFrom中l(wèi)abel背景透明的實(shí)現(xiàn)方法

    這篇文章主要介紹了WinFrom中l(wèi)abel背景透明的實(shí)現(xiàn)方法,方法簡單實(shí)用,是C#程序設(shè)計中非常實(shí)用的技巧,需要的朋友可以參考下
    2014-09-09
  • C#實(shí)現(xiàn)驗(yàn)證碼功能

    C#實(shí)現(xiàn)驗(yàn)證碼功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)驗(yàn)證碼功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#實(shí)現(xiàn)簡易計算器功能(附源碼)

    C#實(shí)現(xiàn)簡易計算器功能(附源碼)

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡易計算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • .NET中保證線程安全的高級方法Interlocked類使用介紹

    .NET中保證線程安全的高級方法Interlocked類使用介紹

    這篇文章主要介紹了.NET中保證線程安全的高級方法Interlocked類使用介紹,Interlocked類可以為為多個線程共享的變量提供原子操作,需要的朋友可以參考下
    2014-07-07
  • C#操作 JSON方法匯總

    C#操作 JSON方法匯總

    本文給大家匯總了一下使用C#操作Json的方法,非常的簡單實(shí)用,有需要的小伙伴可以參考下
    2015-10-10
  • C# 無需COM組件創(chuàng)建快捷方式的實(shí)現(xiàn)代碼

    C# 無需COM組件創(chuàng)建快捷方式的實(shí)現(xiàn)代碼

    做一個小程序, 需要創(chuàng)建快捷方式, 網(wǎng)上普遍的做法是引入 COM 組件, 雖然也挺方便的, 但引入之后, 程序就需要多帶一個 dll 文件, 這樣, 想做成單文件便攜版就不行了
    2011-05-05
  • C#中的類繼承詳解

    C#中的類繼承詳解

    大家好,本篇文章主要講的是C#中的類繼承詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • C#實(shí)現(xiàn)IDisposable接口釋放非托管資源

    C#實(shí)現(xiàn)IDisposable接口釋放非托管資源

    這篇文章主要為大家介紹了C#實(shí)現(xiàn)IDisposable接口釋放非托管資源,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • C# 解壓gizp文件(.tgz)的實(shí)例

    C# 解壓gizp文件(.tgz)的實(shí)例

    下面小編就為大家分享一篇C# 解壓gizp文件(.tgz)的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • c# 備忘錄模式

    c# 備忘錄模式

    備忘錄模式:在不破壞封裝的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在這個對象之外的地方保存這個狀態(tài),這樣以后就可將該對象恢復(fù)到原來保存的狀態(tài)了
    2012-10-10

最新評論

北辰区| 鹰潭市| 漳平市| 河池市| 曲沃县| 遂平县| 延长县| 渝北区| 临澧县| 安新县| 察雅县| 繁昌县| 肇东市| 宁德市| 朔州市| 饶河县| 饶河县| 江门市| 祁连县| 徐州市| 青浦区| 松原市| 会泽县| 武乡县| 洞头县| 瓦房店市| 上饶县| 日喀则市| 广元市| 忻城县| 天门市| 色达县| 贡觉县| 莱芜市| 互助| 永春县| 德惠市| 鄂托克前旗| 师宗县| 宜兰县| 遵化市|