亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

利用System.Drawing.Image類進行圖片相關操作

2019-11-14 14:03:59
字體:
來源:轉載
供稿:網友

    C#中對圖片的操作主要是通過System.Drawing.Image等類進行。

    一、將圖片轉換為字節流

    /// <summary>    /// 圖片處理幫助類    /// </summary>    public static class PicPRocessHelper    {        /// <summary>        /// 將圖片轉換為指定的字節流        /// </summary>        /// <param name="filePath">圖片路徑</param>        /// <returns>指定的字節流</returns>        public static byte[] ConvertToByte(String filePath)        {            var m = new System.IO.MemoryStream();            var bp = new System.Drawing.Bitmap(filePath);            bp.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg); //將此圖像以指定的格式保存到指定的流中。            byte[] imgByte = m.GetBuffer(); //從內存緩沖區中讀取            return imgByte;        }    }

    二、將字節流轉換回圖片

        /// <summary>        /// 根據字節流返回Image類型        /// </summary>        /// <param name="streamByte"></param>        /// <returns></returns>        public static Image ReturnImage(byte[] streamByte)        {            System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);            Image img = Image.FromStream(ms);            return img;        }

    三、將Image對象轉換為字節流

        //將Image轉換成流數據,并保存為byte[]           public static byte[] PhotoImageInsert(System.Drawing.Image imgPhoto)        {            MemoryStream mstream = new MemoryStream();            imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);            byte[] byData = new Byte[mstream.Length];            mstream.Position = 0;            mstream.Read(byData, 0, byData.Length); mstream.Close();            return byData;        }

    四、保存圖片

            var oldFilename = @"E:/環境部署/圖片集/熊貓1.jpg";            var oldImage = System.Drawing.Image.FromFile(oldFilename);            var newFilename = @"E:/我的新熊貓.jpg";            oldImage.Save(newFilename, ImageFormat.Jpeg);

    五、生成縮略圖

  1         /// <summary>    2         /// 生成圖片縮略文件    3         /// </summary>    4         /// <param name="originalImage">圖片源文件</param>    5         /// <param name="width">縮略圖寬度</param>    6         /// <param name="height">縮略圖高度</param>    7         /// <param name="mode">生成縮略圖的方式</param>    8         /// <returns>縮率處理后圖片文件</returns>   9         public static Image MakeThumbnail(Image originalImage, int width, int height, ThumbnailModel mode) 10         { 11             int towidth = width; 12             int toheight = height; 13  14             int x = 0; 15             int y = 0; 16             int ow = originalImage.Width; 17             int oh = originalImage.Height; 18  19             switch (mode) 20             { 21                 case ThumbnailModel.HighWidth: //指定高寬縮放(可能變形)    22                     break; 23                 case ThumbnailModel.Width: //指定寬,高按比例    24                     toheight = originalImage.Height * width / originalImage.Width; 25                     break; 26                 case ThumbnailModel.Hight: //指定高,寬按比例   27                     towidth = originalImage.Width * height / originalImage.Height; 28                     break; 29                 case ThumbnailModel.Default: //指定高,寬按比例   30                     if (ow <= towidth && oh <= toheight) 31                     { 32                         x = -(towidth - ow) / 2; 33                         y = -(toheight - oh) / 2; 34                         ow = towidth; 35                         oh = toheight; 36                     } 37                     else 38                     { 39                         if (ow > oh)//寬大于高 40                         { 41                             x = 0; 42                             y = -(ow - oh) / 2; 43                             oh = ow; 44                         } 45                         else//高大于寬 46                         { 47                             y = 0; 48                             x = -(oh - ow) / 2; 49                             ow = oh; 50                         } 51                     } 52                     break; 53                 case ThumbnailModel.Auto: 54                     if (originalImage.Width / originalImage.Height >= width / height) 55                     { 56                         if (originalImage.Width > width) 57                         { 58                             towidth = width; 59                             toheight = (originalImage.Height * width) / originalImage.Width; 60                         } 61                         else 62                         { 63                             towidth = originalImage.Width; 64                             toheight = originalImage.Height; 65                         } 66                     } 67                     else 68                     { 69                         if (originalImage.Height > height) 70                         { 71                             toheight = height; 72                             towidth = (originalImage.Width * height) / originalImage.Height; 73                         } 74                         else 75                         { 76                             towidth = originalImage.Width; 77                             toheight = originalImage.Height; 78                         } 79                     } 80                     break; 81                 case ThumbnailModel.Cut: //指定高寬裁減(不變形)    82                     if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight) 83                     { 84                         oh = originalImage.Height; 85                         ow = originalImage.Height * towidth / toheight; 86                         y = 0; 87                         x = (originalImage.Width - ow) / 2; 88                     } 89                     else 90                     { 91                         ow = originalImage.Width; 92                         oh = originalImage.Width * height / towidth; 93                         x = 0; 94                         y = (originalImage.Height - oh) / 2; 95                     } 96                     break; 97                 default: 98  99                     break;100             }101 102             //新建一個bmp圖片  103             System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);104 105             //新建一個畫板  106             System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);107 108             //設置高質量插值法  109             g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;110 111             //設置高質量,低速度呈現平滑程度  112             g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;113 114             //清空畫布并以透明背景色填充  115             g.Clear(System.Drawing.Color.White);116 117             //在指定位置并且按指定大小繪制原圖片的指定部分  118             g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),119                         new System.Drawing.Rectangle(x, y, ow, oh),120                         System.Drawing.GraphicsUnit.Pixel);121 122             return bitmap;123         }
View Code

    其中縮略圖模式定義如下:

    /// <summary>    /// 縮率圖處理模式    /// </summary>    public enum ThumbnailModel    {        /// <summary>        /// 指定高寬縮放(可能變形)           /// </summary>        HighWidth,        /// <summary>        /// 指定寬,高按比例           /// </summary>        Width,        /// <summary>        /// 默認  全圖不變形           /// </summary>        Default,        /// <summary>        /// 指定高,寬按比例        /// </summary>        Hight,        /// <summary>        /// 指定高寬裁減(不變形)??指定裁剪區域        /// </summary>        Cut,        /// <summary>        /// 自動 原始圖片按比例縮放        /// </summary>        Auto    }
View Code

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线亚洲一区| 色偷偷888欧美精品久久久| 美女性感视频久久久| 国产欧美亚洲视频| 国产精品视频久久| 成人高h视频在线| 国产精品爽爽爽爽爽爽在线观看| 久久视频在线观看免费| 伊人亚洲福利一区二区三区| 日韩欧美中文免费| 欧美成人亚洲成人日韩成人| 久久夜色精品亚洲噜噜国产mv| 成人激情视频小说免费下载| 亚洲电影中文字幕| 国产91精品久久久| 午夜精品久久久久久久久久久久| 国产亚洲成精品久久| 成人444kkkk在线观看| 欧美xxxx14xxxxx性爽| 亚洲小视频在线观看| 国产精品激情av电影在线观看| 国产亚洲美女久久| 中文字幕亚洲自拍| 中文字幕亚洲综合久久筱田步美| 亚洲自拍偷拍色图| 国产精品成人av性教育| 尤物九九久久国产精品的特点| 欧美久久精品午夜青青大伊人| 色无极亚洲影院| 久久99国产精品久久久久久久久| 国产色综合天天综合网| 久久久久久久一| 日韩欧美国产黄色| 日韩av在线精品| 日韩在线视频导航| 国产亚洲欧洲黄色| 欧美插天视频在线播放| 91成人在线观看国产| 精品国偷自产在线视频| 欧美精品午夜视频| 最近2019中文字幕大全第二页| 一区二区三区久久精品| 欧美人交a欧美精品| 精品视频在线播放色网色视频| 伊人久久久久久久久久久久久| 欧美色另类天堂2015| 亚洲免费伊人电影在线观看av| 国产手机视频精品| 国产精品狼人色视频一区| 久久频这里精品99香蕉| 国产精品久久久久久av下载红粉| 国产精品免费视频xxxx| 中文字幕亚洲无线码在线一区| 国产精品一区二区三区久久| 国产精品6699| 久久精品国产视频| 在线观看日韩视频| 日韩大片在线观看视频| 国产欧美日韩丝袜精品一区| 68精品久久久久久欧美| 亚洲精品美女在线观看播放| 国产精品白丝av嫩草影院| 欧美精品电影免费在线观看| 92国产精品久久久久首页| 最近2019年中文视频免费在线观看| 国产视频精品久久久| 亚洲网站在线观看| 欧美性色xo影院| 91精品国产亚洲| 亚洲成人av资源网| 午夜精品99久久免费| 亚洲人成在线播放| 国产成人精品免高潮在线观看| 久久躁狠狠躁夜夜爽| 日韩精品视频在线免费观看| 最近2019中文字幕在线高清| 91精品国产综合久久香蕉922| 日韩中文字幕在线播放| 18一19gay欧美视频网站| 亚洲一二在线观看| 日韩欧美亚洲成人| 色综合久久精品亚洲国产| 国产日韩中文字幕| 亚洲久久久久久久久久久| 国产成+人+综合+亚洲欧洲| 欧美成人精品h版在线观看| 国产剧情日韩欧美| 中文字幕久久精品| 国产极品精品在线观看| 欧美激情啊啊啊| 日韩av在线影院| 精品国产一区二区三区久久久狼| 91av福利视频| 日韩欧美成人网| 欧美一级电影免费在线观看| 国产精品久久久久久久久免费看| 欧美大片在线看| 亚州av一区二区| 亚洲黄页视频免费观看| 亚洲性猛交xxxxwww| 中文字幕日韩欧美精品在线观看| 精品久久国产精品| 98视频在线噜噜噜国产| 欧美最猛性xxxxx亚洲精品| 欧美视频专区一二在线观看| 8050国产精品久久久久久| 日韩美女在线观看一区| 亚洲自拍高清视频网站| 日韩国产一区三区| 日韩在线观看免费网站| 精品久久久香蕉免费精品视频| 日韩av在线播放资源| xxxx欧美18另类的高清| 国产精品女主播视频| 91免费国产视频| 午夜精品美女自拍福到在线| 欧美裸身视频免费观看| 亚洲社区在线观看| 欧美成年人在线观看| 欧美性xxxxhd| 国产精品69久久| 久久久在线免费观看| 日韩精品极品视频| 国产欧美在线播放| 一区二区三区日韩在线| 日本伊人精品一区二区三区介绍| 精品在线观看国产| 欧美精品免费在线| 亚洲成色777777在线观看影院| 中文字幕无线精品亚洲乱码一区| 国产69精品久久久久久| 成人激情综合网| 亚洲成人av在线播放| 日韩在线免费视频观看| 国产国产精品人在线视| 亚洲第一页自拍| 激情成人在线视频| 国产+人+亚洲| 亚洲深夜福利在线| 亚洲人成电影网站色www| 91国内产香蕉| 91精品久久久久久久久青青| 一个人看的www久久| 日韩av影视在线| 人妖精品videosex性欧美| 亚洲福利视频二区| 亚洲国模精品私拍| 国产成人精品一区二区| 538国产精品一区二区在线| 岛国av一区二区| 亚洲一区亚洲二区亚洲三区| 久久久免费av| 中文字幕欧美精品在线| 91香蕉嫩草神马影院在线观看| 欧美日韩亚洲网| 欧美成人激情视频免费观看| 国产精品精品一区二区三区午夜版| 久久天天躁狠狠躁老女人| 国产精品成人观看视频国产奇米| 国产欧美最新羞羞视频在线观看| 欧美日韩国产精品专区| 91精品国产91久久久| 国产精品视频午夜| 国产成人一区二区三区电影|