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

首頁(yè) > 編程 > C# > 正文

使用C#處理數(shù)字圖像

2023-05-14 16:26:30
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文就通過(guò)一個(gè)簡(jiǎn)單的實(shí)例,向大家展示了在Visual C#中如何運(yùn)用GDI+和Unsafe代碼類(lèi)等技術(shù)以實(shí)現(xiàn)簡(jiǎn)單的數(shù)字圖像處理。

一.概述

本文的實(shí)例是一個(gè)數(shù)字圖像處理的應(yīng)用程序,它完成的功能包括對(duì)圖像顏色的翻轉(zhuǎn)、對(duì)圖像進(jìn)行灰度處理和對(duì)圖像進(jìn)行增亮處理。該程序?qū)D像進(jìn)行處理部分的代碼包含在一個(gè)專(zhuān)門(mén)的Filters類(lèi)里面,通過(guò)調(diào)用該類(lèi)里的靜態(tài)成員函數(shù),我們就可以實(shí)現(xiàn)相應(yīng)的圖像處理功能了。為實(shí)現(xiàn)圖像處理,我們要對(duì)圖像進(jìn)行逐個(gè)象素處理。我們知道圖像是由一個(gè)個(gè)的象素點(diǎn)組成的,對(duì)一幅圖像的每個(gè)象素進(jìn)行了相應(yīng)的處理,最后整個(gè)圖像也就處理好了。在這個(gè)過(guò)程中,我們只需對(duì)每個(gè)象素點(diǎn)進(jìn)行相應(yīng)的處理,在處理過(guò)程中卻不需要考慮周?chē)笏攸c(diǎn)對(duì)其的影響,所以相對(duì)來(lái)說(shuō)程序的實(shí)現(xiàn)就變得簡(jiǎn)單多了。

由于GDI+中的BitmapData類(lèi)不提供對(duì)圖像內(nèi)部數(shù)據(jù)的直接訪(fǎng)問(wèn)的方法,我們唯一的辦法就是使用指針來(lái)獲得圖像的內(nèi)部數(shù)據(jù),這時(shí)我們就得運(yùn)用unsafe這個(gè)關(guān)鍵字來(lái)指明函數(shù)中訪(fǎng)問(wèn)圖像內(nèi)部數(shù)據(jù)的代碼塊了。在程序中,我還運(yùn)用了打開(kāi)文件和保存文件等選項(xiàng),以使我們的辛勤勞動(dòng)不付之東流。

二.程序的實(shí)現(xiàn)

1.打開(kāi)Visual Studio.net,新建一個(gè)Visual C#的項(xiàng)目,在模板中選擇"Windows 應(yīng)用程序"即可,項(xiàng)目名稱(chēng)可自定(這里為ImageProcessor)。

2.為使窗體能顯示圖像,我們需要重載窗體的OnPaint()事件函數(shù),在該函數(shù)中我們將一個(gè)圖像繪制在程序的主窗體上,為了使窗體能顯示不同尺寸大小的圖像,我們還將窗體的AutoScroll屬性設(shè)置為true。這樣,根據(jù)圖像的尺寸,窗體兩邊就會(huì)出現(xiàn)相應(yīng)的滾動(dòng)條。該函數(shù)的實(shí)現(xiàn)如下:

 

private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

{

Graphics g = e.Graphics;

g.DrawImage(m_Bitmap, new Rectangle(this.AutoScrollPosition.X, this.AutoScrollPosition.Y,

(int)(m_Bitmap.Width), (int)(m_Bitmap.Height)));

}

3.給主窗體添加一個(gè)主菜單,該主菜單完成了一些基本的操作,包括"打開(kāi)文件"、"保存文件"、"退出"、"翻轉(zhuǎn)操作"、"灰度操作"、"增亮操作"等。前面三個(gè)操作完成圖像文件的打開(kāi)和保存以及程序的退出功能,相應(yīng)的事件處理函數(shù)如下:

private void menuItemOpen_Click(object sender, System.EventArgs e)

{

OpenFileDialog openFileDialog = new OpenFileDialog();

openFileDialog.Filter = "Bitmap文件(*.bmp)|*.bmp|

Jpeg文件(*.jpg)|*.jpg|

所有合適文件(*.bmp/*.jpg)|*.bmp/*.jpg";

openFileDialog.FilterIndex = 2 ;

openFileDialog.RestoreDirectory = true ;

if(DialogResult.OK == openFileDialog.ShowDialog())

{

m_Bitmap = (Bitmap)Bitmap.FromFile(openFileDialog.FileName, false);

this.AutoScroll = true;

this.AutoScrollMinSize=new Size ((int)(m_Bitmap.Width),(int)

m_Bitmap.Height));

this.Invalidate();

}

}

其中,m_Bitmap為主窗體類(lèi)的一個(gè)數(shù)據(jù)成員,聲明為private System.Drawing.Bitmap m_Bitmap;(注:因?yàn)槌绦蛑杏玫搅讼嚓P(guān)的類(lèi),所以在程序文件的開(kāi)始處應(yīng)添加using System.Drawing.Imaging;)同時(shí),在該類(lèi)的構(gòu)造函數(shù)中,我們必須先給它new一個(gè)Bitmap對(duì)象:m_Bitmap = new Bitmap(2,2);上述代碼中的this.Invalidate();完成主窗體的重繪工作,它調(diào)用了主窗體的OnPaint()函數(shù),結(jié)果就將打開(kāi)的圖像文件顯示在主窗體上。

 

private void menuItemSave_Click(object sender, System.EventArgs e)

{

SaveFileDialog saveFileDialog = new SaveFileDialog();

saveFileDialog.Filter = "Bitmap文件(*.bmp)|*.bmp|

Jpeg文件(*.jpg)|*.jpg|

所有合適文件(*.bmp/*.jpg)|*.bmp/*.jpg";

saveFileDialog.FilterIndex = 1 ;

saveFileDialog.RestoreDirectory = true ;

if(DialogResult.OK == saveFileDialog.ShowDialog())

{

m_Bitmap.Save(saveFileDialog.FileName);

}

}

其中m_Bitmap.Save(saveFileDialog.FileName);一句完成了圖像文件的保存,正是運(yùn)用了GDI+的強(qiáng)大功能,我們只需這么一條簡(jiǎn)單的語(yǔ)句就完成了以前很大工作量的任務(wù),所以合理運(yùn)用.NET中的新機(jī)制一定會(huì)大大簡(jiǎn)化我們的工作的。

 

private void menuItemExit_Click(object sender, System.EventArgs e)

{

this.Close();

}

接下來(lái),三個(gè)主要操作的事件處理函數(shù)如下:

 

private void menuItemInvert_Click(object sender, System.EventArgs e)

{

if(Filters.Invert(m_Bitmap))

this.Invalidate();

}

private void menuItemGray_Click(object sender, System.EventArgs e)

{

if(Filters.Gray(m_Bitmap))

this.Invalidate();

}

private void menuItemBright_Click(object sender, System.EventArgs e)

{

Parameter dlg = new Parameter();

dlg.nValue = 0;

if (DialogResult.OK == dlg.ShowDialog())

{

if(Filters.Brightness(m_Bitmap, dlg.nValue))

this.Invalidate();

}

}

三個(gè)函數(shù)中分別調(diào)用了相應(yīng)的圖像處理函數(shù)Invert()、Gray()、Brightness()等三個(gè)函數(shù)。這三個(gè)函數(shù)Filters類(lèi)中的三個(gè)類(lèi)型為public的靜態(tài)函數(shù)(含有static關(guān)鍵字),它們的返回值類(lèi)型均是bool型的,根據(jù)返回值我們可以決定是否進(jìn)行主窗體的重繪工作。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
好了av在线| 亚洲欧洲av一区二区三区久久| 99精彩视频| 先锋资源久久| 无码人妻av免费一区二区三区| 国产午夜福利片| 成人3d精品动漫精品一二三| 欧美色综合网| 97人人澡人人爽91综合色| 亚洲乱码国产乱码精品天美传媒| 国产在线视频卡一卡二| 中文字幕字幕中文在线中不卡视频| 99久久久久久| а√天堂资源国产精品| 成人免费黄色| 精品视频三区| 欧美激情黑白配| 日韩一级片中文字幕| 国产在线天堂www网在线观看| 国产精品久久97| 国产成人无码a区在线观看视频| 亚洲精选久久| 欧美国产一二三区| 国产精品18久久久久久vr| 99国产在线视频| 欧美日韩一区二区三区在线免费观看| 国产高清自拍视频| 热re66久久精品国产99re| 国产精品一级久久久| 精品福利樱桃av导航| 亚洲系列第一页| 男人晚上看的视频| 免费搞黄视频| 精品国产亚洲一区二区三区在线观看| 欧美刺激午夜性久久久久久久| 国产精品日韩在线| 欧美成人性生活视频| 中文字字幕在线中文| 欧美午夜精品久久久久免费视| 亚洲一区免费网站| 国内精品久久久久久中文字幕| 欧美日韩女优| 红桃成人av在线播放| 免费国产阿v视频在线观看| 亚洲国产精品一区二区久| 国产又粗又长又大的视频| 欧美哺乳videos| 国产精品无码一区二区桃花视频| 白白色在线观看| 久久久久久久久久综合| 国产传媒av在线| 欧美寡妇偷汉性猛交| 韩国视频一区二区三区| 欧美日韩国产一区精品一区| 久久人人九九| 最近中文字幕大全中文字幕免费| 久久久久亚洲AV成人网人人小说| 精品电影一区二区| av三级影院| 日韩精品电影网站| 亚洲va久久久噜噜噜久久| 国内精品久久久久国产盗摄免费观看完整版| 老太脱裤子让老头玩xxxxx| 欧美日韩国产精品一区| 国产精品久久久久久久久电影网| 成人开心激情| 欧美精品日本| 欧美一区激情| 在线播放豆国产99亚洲| 美国精品一区二区| 国产肉体ⅹxxx137大胆| 极品人妻一区二区三区| 伊人成人免费视频| 9色porny| 天堂va欧美ⅴa亚洲va一国产| 91福利精品第一导航| 久久发布国产伦子伦精品| 可以在线观看的av网站| 在线免费观看高清视频色| 国产精品久久久久7777| 精品久久久久久综合日本| 亚洲欧美精品在线| 日韩大片免费在线观看| 久久精品一区二区三区资源网| jizzjizz日本护士免费| 一级黄色在线观看| 芒果视频成人app| 欧美黑人欧美精品刺激| 7777精品久久久大香线蕉| 97激碰免费视频| 91社区在线播放| 中国国产一级毛片| 99精品欧美一区二区三区小说| 亚洲国产精品久久久久婷婷884| 日本高清久久久| 国产一区二区三区在线免费观看| 91国内精品久久久| 久久久精品视频免费观看| 国产欧美一区二区白浆黑人| 欧美xxav| 黄色小视频在线观看| 国产一区二区精品丝袜| 国产一区二区不卡| 黄色在线播放网站| 欧洲国内综合视频| jizzjizzjizzjizz日本老师| 日本三级免费看| 国产精品视频免费观看| 国模无码国产精品视频| 成人情趣片在线观看免费| 日本欧美高清| 午夜免费一区| www.桃色.com| 成人影音在线| 户外露出一区二区三区| 久久精品中文字幕一区二区三区| 久久精品小视频| 日本成人a视频| 天天摸天天做天天爽| 亚洲一区二区三区四区在线播放| 好吊一区二区三区视频| 亚洲天堂偷拍| 99在线|亚洲一区二区| jiuse.com91视频| 在线这里只有精品| 欧美四级剧情无删版影片| 国产一区视频观看| 欧美美女一区二区三区| 91大神精品| 久久精品欧美一区二区三区麻豆| 国产在线播精品第三| 欧美日韩亚洲视频一区| 18欧美乱大交hd1984| 国产秀色在线www免费观看| 日本亚洲天堂网| 99热在线免费| 天堂资源在线中文| 亚洲永久精品国产| 国产在线日韩| 99国产欧美久久久精品| 欧美日韩一区二区区| 国内成人精品视频| 一级久久久久久久| 国内精品在线观看视频| 国产精品日韩二区| 高清一区二区三区四区五区| 91精品国产综合久久香蕉麻豆| 国产精品久久久久久久久久白浆| 在线免费观看毛片| 亚洲综合成人在线视频| 美女啪啪无遮挡免费久久网站| 亚洲啪啪综合av一区二区三区| 欧洲视频一区二区三区| 亚洲美女动态图120秒| 三级黄色的网站| 国产色a在线| 国产日韩欧美一区二区三区四区| 91成人在线观看喷潮| 欧美在线激情视频| av网站在线免费看| 老湿机69福利| 国产精品66| 午夜精品区一区二区三| 在线一区二区不卡| 天堂网www中文在线| 中日韩一区二区三区| 亚洲蜜桃精久久久久久久久久久久| 日韩成人三级| 日韩av三级在线观看| 久久亚洲精精品中文字幕| 免费一级欧美片在线播放| 欧美另类高清zo欧美| 日本aaa视频| 天天操天天操天天操天天| 亚洲一区二区黄色| 美女日韩一区| 精品国产午夜福利在线观看| 欧美日韩高清在线一区| 一级做a爰片性色毛片视频| 国产 日韩 欧美大片| xxx亚洲日本| 色婷婷中文字幕| 4438x成人网最大色成网站| 国产精品久久久久白浆| 99国产超薄丝袜足j在线观看| 精品久久sese| 日韩在线视频线视频免费网站| 国产精品免费一区二区三区四区| 欧美狂猛xxxxx乱大交3| 国产成人一区二区三区小说| 国产精品毛片久久久久久久av| 欧美亚洲丝袜| 久草在线资源网站| 影音先锋中文字幕在线视频| 国产精品丝袜一区二区| 一区二区三区欧美激情| 久久久极品av| 精品视频1区2区3区| www.国产精品| 51国产偷自视频区视频| www.男人的天堂| 粉嫩的18在线观看极品精品| 国产在线拍揄自揄视频不卡99| 视频一区二区三区在线| 91av福利视频| 天天爽夜夜爽人人爽| 国产精品美女主播在线观看纯欲| www.xxx国产| 一区二区三区高清在线视频| 日本欧洲一区二区| 亚洲午夜精品久久| 欧美gv在线观看| 日本高清www免费视频| 成人羞羞国产免费网站| 国产伦精品一区二区三区四区免费| 欧美一区综合| 欧美日韩伦理一区二区| 高清一区二区三区| 李宗瑞系列合集久久| 亚洲午夜精品久久久久久浪潮| 蜜臀av一区二区三区| 日韩三级在线观看视频| 中文亚洲字幕| 日本乱理伦在线| 国产精品网红直播| 国产精品免费一区二区三区观看| 青青草成人av| 国产视频精品久久久| 一区二区三区四区免费视频| 传媒在线观看| 亚洲人成无码网站久久99热国产| 一区二区三区www| 欧美白人做受xxxx视频| av成人激情| 亚洲国产综合视频在线观看| 插我舔内射18免费视频| 91精品国产九九九久久久亚洲| 色影视在线视频资源站| 午夜精品一区二区在线观看的| 日韩一区在线免费观看| 国产精品黑丝在线播放| 这里都是精品| 日韩中文字幕久久久经典网| 99精品视频一区二区三区| av网址在线观看免费| 性直播在线观看| brazzers欧美最新版视频| 在线观看网站免费入口在线观看国内| 香蕉视频在线观看黄| 91午夜在线播放| 中文字幕网站视频在线| 久久噜噜噜精品国产亚洲综合| 91传媒视频在线播放| 黄色小视频在线看| 成人亚洲精品777777ww| 国产欧美一区| 日韩女优制服丝袜电影| 欧美影院一区二区| 久久在精品线影院精品国产| 午夜天堂在线视频| 精品国产第一国产综合精品| 麻豆精品视频在线原创| 国产伦精品一区二区三区视频免费| 国产精品入口麻豆九色| 亚洲一区精品电影| 国产精品黄色在线观看| 日本网站免费在线观看| 日韩精品视频免费在线观看| 成人国产1314www色视频| 91精品国产综合久久精品图片| 先锋影音男人站| 亚洲妇女av| 国产乱淫a∨片免费观看| 精品无码久久久久久久久| 自拍偷拍第9页| 国产精品沙发午睡系列990531| 先锋影音男人av资源| 国产农村妇女精品一区| 91激情视频在线观看| 人人妻人人澡人人爽精品欧美一区| 黄色动漫在线观看| 精品一区二区三区蜜桃在线| 国产人妖一区| 91地址最新发布| 国产女大学生av| 奇米精品一区二区三区在线观看| 青青草精品视频| 青娱乐国产精品视频| 少妇一晚三次一区二区三区| 国产欧美一区二区三区视频在线观看| 日韩在线观看电影完整版高清免费悬疑悬疑| 亚洲欧美日韩国产一区| av在线免费网站| 午夜精品久久久久99蜜桃最新版| 妞干网在线免费视频| 一卡二卡三卡亚洲| 欧美精品一区二区三区涩爱蜜| 国产人妖一区二区| 亚洲色图都市小说| 在线播放视频一区| 无人在线观看的免费高清视频| 午夜18视频在线观看| 欧美视频三区在线播放| 国产va免费精品观看精品| 黄色av一级片| 免费一级suv好看的国产网站| 欧美黑人性视频| 日韩一级片免费在线观看| 亚洲精品日产| 国产中文字幕一区| 国产精品欧美韩国日本久久| 碰碰视频免费| 久久国产欧美| 一级精品视频在线观看宜春院| 久久久久高潮毛片免费全部播放| 国产在线高清| 99re在线观看| 国产成人无码aa精品一区| 亚洲成人av在线播放| 免费视频一区三区| 国产高清不卡一区| 人与牲动交xxxxbbb| 久久久国产精品黄毛片| 成人羞羞网站| 国产在线看片| 亚洲激情视频在线播放| 精品少妇人妻av一区二区三区| 97超碰人人在线|