成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

全面介紹C#指針操作

開發(fā) 后端
本文介紹C#指針操作,平時我們通過GDI+操作稍大點圖片象素時,都會有一種瀕臨崩潰的感覺,我們轉(zhuǎn)下用C#指針操作。

提及.NET的指針操作,很多人并不是很了解,甚至還不知道有這么個東東,由于C#指針操作屬于unsafe操作,所以很多人對unsafe使用起來都很謹(jǐn)慎,其實所謂不安全代碼,其實是不受控于CLR控制下的托管執(zhí)行,相當(dāng)于CLR領(lǐng)導(dǎo)下的部分區(qū)域自治,當(dāng)然CLR也不會去關(guān)心不安全代碼的內(nèi)存分配和回收。費話少說,先體驗一下適當(dāng)?shù)腃#指針操作帶來的性能提升。平時我們通過GDI+操作稍大點圖片象素時,都會有一種瀕臨崩潰的感覺,我們轉(zhuǎn)下用C#指針操作

  1. Bitmapmap=newBitmap(path);  
  2. //將圖片位圖區(qū)域進行鎖定  
  3. BitmapDatamapdata=map.LockBits(newRectangle(0,0,map.Width,map.Height),
    ImageLockMode.ReadWrite,PixelFormat.Format24bppRgb);  
  4. unsafe  
  5. {  
  6. byte*pixpoint;  
  7. intnewpoint;  
  8.  
  9. for(inti=0;i<map.Width;i++)  
  10. {  
  11. for(intj=0;j<map.Height;j++)  
  12. {  
  13. //位圖結(jié)構(gòu)存在一個字節(jié)對齊問題。  
  14. pixpoint=(byte*)mapdata.Scan0;+i*3+j*mapdata.Stride;  
  15. newpoint=(*pixpoint*11+*(pixpoint+1)*59+*(pixpoint+2)*30)/100;  
  16. *(pixpoint++)=(byte)newpoint;  
  17. *(pixpoint++)=(byte)newpoint;  
  18. *(pixpoint++)=(byte)newpoint;  
  19.  
  20. //非指針操作  
  21. //Colorpxcl=map.GetPixel(i,j);  
  22. //map.SetPixel(i,j,(pxcl.R*11+pxcl.G*59+pxcl*30)/100);  
  23. }  
  24. }  
  25. }  
  26. //將位圖內(nèi)存區(qū)域進行解鎖  
  27. map.UnlockBits(mapdata);  
  28. map.Dispose(); 

比較GDI+使用的GetPixel/SetPixel,讓你立馬感到這個世界多么美妙

再來一個中值濾波的操作

  1. ///<summary> 
  2. ///中值濾波  
  3. ///</summary> 
  4. ///<paramnameparamname="dgGrayValue"></param> 
  5. publicvoidMedianFilter(intdgGrayValue)  
  6. {  
  7. //100M雙線空間+50M數(shù)據(jù)庫28元/年  
  8. //1G雙線空間+200M數(shù)據(jù)庫100元/年  
  9. //QQ:70975363  
  10. bytes;  
  11. byte[]p=newbyte[9];  
  12. inti,j;  
  13. intx,y;  
  14. intStride;  
  15. unsafe  
  16. {  
  17. byte*point=(byte*)this.ImageData.Scan0;  
  18. Stride=this.ImageData.Stride;  
  19. pointpoint=point+3+this.ImageData.Stride;  
  20. for(i=0;i<this.ImageData.Height-1;i++)  
  21. {  
  22. for(j=0;j<this.ImageData.Width-1;j++)  
  23. {  
  24. p[0]=*(point-Stride-1);  
  25. p[1]=*(point-Stride+2);  
  26. p[2]=*(point-Stride+5);  
  27. p[3]=*(point-1);  
  28. p[4]=*(point+2);  
  29. p[5]=*(point+5);  
  30. p[6]=*(point+Stride-1);  
  31. p[7]=*(point+Stride+2);  
  32. p[8]=*(point+Stride+5);  
  33. for(x=0;x<5;x++)  
  34. {  
  35. for(y=x+1;y<9;y++)  
  36. {  
  37. if(p[x]>p[y])  
  38. {  
  39. s=p[x];  
  40. p[x]=p[y];  
  41. p[y]=s;  
  42. }  
  43. }  
  44. }  
  45. *ppoint=p[4];  
  46. *(point-1)=p[4];  
  47. *(point-2)=p[4];  
  48. point+=3;  
  49.  
  50. }  
  51. point+=Stride-this.ImageData.Width*3;  
  52. }  
  53. }  

【編輯推薦】

  1. C#調(diào)用Windows API函數(shù)
  2. 詳解C#調(diào)用Outlook API
  3. C#連接Access、SQL Server數(shù)據(jù)庫
  4. 介紹C#調(diào)用API的問題
  5. C#調(diào)用Excel與附加代碼
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-09-16 09:00:15

C#數(shù)組C#指針

2009-08-18 17:37:57

C#固定指針

2009-08-21 15:16:23

C#使用指針

2009-08-07 17:45:29

C#預(yù)處理

2009-09-01 10:20:28

C#多種語句

2009-07-31 15:52:47

C#常用函數(shù)

2009-09-18 10:45:31

C#數(shù)組操作

2009-08-11 15:17:12

C#基礎(chǔ)知識

2009-09-04 11:35:05

C#方法重寫

2009-08-12 15:43:02

操作C# Datase

2009-06-09 15:52:40

C#指針圖像操

2009-08-20 10:25:37

C#操作內(nèi)存

2009-09-08 17:37:54

C# listbox控

2009-08-14 16:01:22

C#面向?qū)ο?/a>

2009-01-08 09:26:06

C語言指針類型

2009-08-18 17:29:02

C#使用指針

2009-08-12 18:35:36

C# ArrayLis

2009-08-13 15:48:57

C#指針

2009-07-31 15:10:21

C#函數(shù)指針數(shù)組C#數(shù)組

2009-08-11 14:57:11

比較C#和Java
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产乱xxav| 亚洲在线电影 | 久久亚洲国产精品 | 色综合天天综合网国产成人网 | av中文字幕在线 | 女同videos另类 | 亚洲精品一区在线 | 不卡一二三区 | 嫩草懂你的影院入口 | av免费网站在线观看 | 麻豆视频在线免费看 | 精品免费国产一区二区三区四区介绍 | 日本a视频 | 欧美在线视频一区 | 亚洲精品乱码久久久久久久久 | 欧美成人免费在线视频 | 亚洲精品在线免费看 | 国产成人99久久亚洲综合精品 | 青青久草 | 久久久久久久久久久久久9999 | 黑人精品欧美一区二区蜜桃 | 亚洲一区二区三区四区五区午夜 | 中文字幕在线一区 | 欧美性生交大片免费 | 天天干夜夜操 | 日韩在线成人 | 日韩中文在线视频 | 精品国产乱码久久久久久蜜柚 | h在线播放 | 免费久久精品视频 | 夜夜摸夜夜操 | 麻豆av在线免费观看 | 视频一区二区三区中文字幕 | 久久99精品国产麻豆婷婷 | 亚洲午夜久久久 | 欧美日韩精品专区 | 久久com | 在线视频中文字幕 | 玖玖玖在线 | 中文字幕二区 | 日本久久久一区二区三区 |