久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

C#實現縮放和剪裁圖片的方法示例

這篇文章主要介紹了C#實現縮放和剪裁圖片的方法,結合實例形式分析了C#針對圖片屬性的縮放、裁剪等相關操作技巧,需要的朋友可以參考下

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


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);
        // 插值算法的質量
        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">開始坐標X</param>
    /// <param name="StartY">開始坐標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;
      }
    }
  }
}

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

更多關于C#相關內容感興趣的讀者可查看本站專題:《C#圖片操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結》、《C#數據結構與算法教程》、《C#面向對象程序設計入門教程》及《C#程序設計之線程使用技巧總結》

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

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

這篇文章主要為大家詳細介紹了C# SendMail發送郵件功能實現,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要介紹了C#實現的SQL備份與還原功能,結合具體實例形式分析了C#操作數據庫實現SQL備份與還原相關的控件、SQL連接、文件等操作技巧,需要的朋友可以參考下
這篇文章主要介紹了C#使用checkedListBox1控件鏈接數據庫的方法,結合具體實例形式分析了數據庫的創建及checkedListBox1控件連接數據庫的相關操作技巧,需要的朋友可以參考下
這篇文章主要介紹了C#實現的sqlserver操作類,結合具體實例形式分析了C#針對sqlserver數據庫進行連接、查詢、更新、關閉等相關操作技巧,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了C#多線程數組模擬socket的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要為大家詳細介紹了C#根據http和ftp圖片地址獲取對應圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 免费看淫片 | 国产精品无码久久久久 | 精品欧美一区免费观看α√ | 精品视频久久久 | 亚洲三区在线播放 | 欧美国产91 | 欧美日产国产成人免费图片 | 国产精品视频久久 | 99视频在线看| 亚洲一区av | 日日操夜夜操天天操 | 亚洲 中文 欧美 | 国产乱码精品一区二区三区五月婷 | 日本久久黄色 | 精品伊人| 欧美在线看片 | 四虎精品在线 | 欧美久久久久久久久 | 精品一区二区不卡 | 精品国产乱码久久久久久久久 | 日韩精品一区二区在线 | 日韩在线一区二区三区 | 天天综合久久 | 91精品一区 | 超碰激情 | 欧美又大粗又爽又黄大片视频 | 夜夜骑首页 | 成人欧美一区二区三区黑人孕妇 | 欧美精品在线观看 | 国产成人一区二区 | 天天拍天天操 | 一级片片 | 成人精品视频在线观看 | 欧美99 | 99pao成人国产永久免费视频 | www.一区二区三区.com | caoporn国产精品免费公开 | 日本精品一区二区三区在线观看 | 国产一级淫片免费视频 | 久久久精彩视频 | 欧美日韩高清免费 |