




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VC#圖像處理9.1VC#圖像處理基礎(chǔ)9.1.1圖像文件類型位圖.bmp,Icon.ico,GIF.gif,圖元文件.wmf,JPEG.jpg9.1.2Bitmap對(duì)象 通過Image類及派生類Bitmap實(shí)現(xiàn)圖像處理。Image類是抽象類,Bitmap封裝了GDI+位圖,可以處理由像素?cái)?shù)據(jù)定義的圖像。1.創(chuàng)建Bitmap對(duì)象:(1)從現(xiàn)有圖像建立
Bitmapbox1=newBitmap(pictureBox1.Image);(2)從圖像文件建立
Bitmapbox2=newBitmap("C:\MyImages\TestImage.bmp");(3)從現(xiàn)有的Bitmap對(duì)象建立
Bitmapbox3=newBitmap(box1);2.Bitmap類常用屬性
Height獲取對(duì)象的高度。
Palette獲取對(duì)象的調(diào)色板。
RawFormat獲取對(duì)象的格式。
Width獲取對(duì)象的寬度。3.Bitmap類常用方法
GetPixel獲取對(duì)象中指定像素的顏色。
MakeTransparent使默認(rèn)的透明顏色對(duì)此對(duì)象透明。
RotateFlip旋轉(zhuǎn)、翻轉(zhuǎn)或者同時(shí)旋轉(zhuǎn)和翻轉(zhuǎn)對(duì)象。
Save將對(duì)象以指定的格式保存到指定的Stream對(duì)象。
SetPixel設(shè)置對(duì)象中指定像素的顏色。
SetResolution設(shè)置對(duì)象的分辨率。9.2圖像的輸入和保存9.2.1圖像的輸入1.利用屬性窗口輸入2.使用文件打開對(duì)話框輸入圖像[例]使用文件打開對(duì)話框輸入圖像privatevoidbutton1_Click(objectsender ,System.EventArgse){OpenFileDialogofdlg=newOpenFileDialog();ofdlg.Filter="BmpFile(*.bmp)|*.bmp";if(ofdlg.ShowDialog()==DialogResult.OK){ Bitmapimage=newBitmap(ofdlg.FileName); pictureBox1.Image=image;}}
9.2.2圖像的保存使用Image類的Save方法。
voidSave(stringfilename) voidSave(stringfilename,ImageFormatformat) voidSave(Streamstream,ImageFormatformat)
其中,filename文件名字;format保存圖像的格式,是ImageFormat類的實(shí)例,該類的Bmp、Gif、Jpeg、Png、Icon等屬性指定圖像的格式;stream指定保存圖像的流。
[例]使用文件保存對(duì)話框保存圖像voidbutton1_Click(objectsender,System.EventArgse){ stringstr,str1; Bitmapbox1=newBitmap(pictureBox1.Image); Graphicsg=this.CreateGraphics(); saveFileDialog1.Filter="bmp文件(*.BMP)|*.BMP|AllFile(*.*)|*.*"; saveFileDialog1.ShowDialog(); str=saveFileDialog1.FileName; pictureBox1.Image.Save(str);}9.3圖像拷貝和粘貼9.3.1使用剪貼板拷貝和粘貼圖像1.剪貼板Clipboard類(1)SetDataObject方法將圖像或文本信息發(fā)送到剪貼板,格式:Clipboard.SetDataObject(objectdata[,boolsave]);
其中,data發(fā)送到剪貼板的數(shù)據(jù);save表示應(yīng)用程序退出后是否將數(shù)據(jù)保留在剪貼板上。Clipboard.SetDataObject(“復(fù)制文本”);(2)GetDataObject方法從剪貼板上獲得數(shù)據(jù)。
[例]Clipboard對(duì)象拷貝和粘貼privatevoidbutton1_Click(objectsender,EventArgse){ Clipboard.SetDataObject(pictureBox1.Image);}將剪貼板的內(nèi)容粘貼到到pictureBox2的程序:privatevoidbutton2_Click(objectsender,System.EventArgse){ IDataObjectiData=Clipboard.GetDataObject(); if(iData.GetDataPresent(DataFormats.Bitmap)){ pictureBox2.Image=(Bitmap)iData.GetData(DataFormats.Bitmap); }}9.3.2使用AxPictureClip控件拷貝和粘貼圖像1.添加ActiveX控件到工具箱添加步驟為:(1)右擊工具箱的空白處,在快捷菜單中選【選擇項(xiàng)】(2)在對(duì)話框中選“COM組件”選項(xiàng)卡。選擇“MicrosoftPictureClipControl,version6”項(xiàng)
[例]使用AxPictureClip控件剪切和粘貼圖像
//“打開”按鈕單擊事件響應(yīng)過程privatevoidbutton1_Click(objectsender,System.EventArgse){ OpenFileDialogofdlg=newOpenFileDialog(); ofdlg.Filter="BmpFile(*.bmp)|*.bmp"; if(ofdlg.ShowDialog()==DialogResult.OK){ Bitmapimage=newBitmap(ofdlg.FileName); pictureBox1.Image=image;}}//“剪切與粘貼”按鈕單擊事件privatevoidbutton2_Click(objectsender,EventArgse){ axPictureClip1.Picture=pictureBox1.Image; axPictureClip1.ClipX=10; axPictureClip1.ClipY=10; axPictureClip1.ClipHeight=150; axPictureClip1.ClipWidth=150;pictureBox2.Image=axPictureClip1.Clip; }9.4彩色圖像處理9.4.1圖像的分辨率[例]將256*256分辨率的圖像變換為64*64分辨率1.算法說明將源圖像分成4*4的子圖像塊,然后將該4*4子圖像塊的所有像素的顏色按子圖像塊的左上角像素的顏色值進(jìn)行設(shè)定
for(i=0;i<xres-4;i+=4){for(j=0;j<yres-4;j+=4){ c=box1.GetPixel(i,j); r=c.R; g=c.G; b=c.B; Colorcc=Color.FromArgb(r,g,b); for(k1=0;k1<4-1;k1++){ for(k2=0;k2<4-1;k2++) box2.SetPixel(i+k1,j+k2,cc);}}}9.4.2彩色圖像變換灰度圖像
[例]彩色圖像生成灰度圖像(1)算法說明 將彩色圖像像素的顏色值分解為三基色r、g、b,求其和的平均值,使用SetPixel方法以該平均值生成圖像。
Colorc=b.GetPixel(i,j); r=c.R;g=c.G; b=c.B; cc=(int)((r+g+b)/3); if(cc<0)cc=0; if(cc>255)cc=255; Colorc1=Color.FromArgb(cc,cc,cc); b1.SetPixel(i,j,c1);9.5動(dòng)畫(1)動(dòng)畫是由若干靜態(tài)畫面,快速交替顯示而成。因人的眼睛會(huì)產(chǎn)生視覺暫留,就會(huì)有動(dòng)的感覺。因此,我們可以使用多張圖片連續(xù)播放,來實(shí)現(xiàn)動(dòng)畫效果。(2)播放或顯示圖片使用Graphics類的DrawImage方法:
voidDrawImage(Imageimage,RectangledestRect,intsrcX,intsrcY,intsrcWidth,intsrcHeight,GraphicsUnitsrcUnit)參數(shù):image:要繪制的圖像;destRect:繪制圖像位置和大??;srcX,srcY:源圖像部分的左上角的x,y坐標(biāo);srcWidth,srcHeight:要繪制源圖像部分的寬度和高度。srcUnit:確定源矩形的度量單位,取值GraphicsUnit枚舉[例]動(dòng)畫效果 添加一個(gè)ImageList控件,為其添加動(dòng)畫圖片;添加一個(gè)定時(shí)器控件timer1。
全局變量:intcount=0; Graphicsg; //播放動(dòng)畫按鈕單擊事件響應(yīng)過程privatevoidbutton1_Click(objectsender,EventArgse){g=pictureBox1.CreateGraphics(); timer1.Interval=1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)生合伙協(xié)議合同范本
- 乙方土地流轉(zhuǎn)合同范本
- 共同承包果園合同范本
- 借款給人買房合同范本
- 養(yǎng)生行業(yè)用人合同范本
- 人才用工合同范本
- 業(yè)務(wù)解約合同范本
- 公司煙酒合同范本
- 給同學(xué)的畢業(yè)贈(zèng)言15篇
- 買賣電動(dòng)車合同范本
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:chapter10 Hashing
- 藍(lán)色卡通風(fēng)學(xué)生班干部競(jìng)選介紹PPT模板課件
- 人教新目標(biāo)英語(yǔ)九年級(jí)上冊(cè)單詞中文Units
- 機(jī)動(dòng)車牌證申請(qǐng)表格模板(完整版)
- 部編版小學(xué)語(yǔ)文三年級(jí)(下冊(cè))學(xué)期課程綱要
- 道路交通事故責(zé)任認(rèn)定行政復(fù)議申請(qǐng)書范例
- 高效液相含量測(cè)定計(jì)算公式
- 六宮格數(shù)獨(dú)解題技巧
- 公安機(jī)關(guān)通用告知書模板
- 工程款支付審批流程圖
- 人教版七年級(jí)歷史下冊(cè)第一單元填空題
評(píng)論
0/150
提交評(píng)論