久久久久久久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圖片地址獲取對應圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 欧美日韩国产在线观看 | 国产精品一区久久久 | 国产精品国产三级国产播12软件 | 资源首页二三区 | 国产精品区一区二区三区 | 91日日 | 欧美一区二区三区在线看 | 99re热精品视频国产免费 | 中文字幕av一区二区三区 | 日韩欧美一区二区三区免费看 | 色婷婷久久久久swag精品 | 国产69久久精品成人看动漫 | 中文字幕一区二区三区在线观看 | 日韩精品一区二 | 国产成人综合在线 | 中文字幕日韩欧美 | 欧美精品国产精品 | 国产中文字幕在线观看 | 中文字幕二区 | 亚洲有码转帖 | 综合国产 | 天天色天天 | 91人人视频在线观看 | 久操伊人 | 久www| 欧美精品1区2区3区 精品国产欧美一区二区 | 亚洲一区二区三区视频 | 麻豆91av| 免费99视频 | 精品在线一区 | 日韩一区二区成人 | 久久精品小视频 | 国产日韩欧美在线观看 | 亚洲国产一区二区视频 | 九九综合九九 | 精品久久一区 | 日韩av成人| 一区二区中文字幕 | 欧美久久不卡 | 91在线视频网址 | 久久网站黄 |