當前位置:編程學習大全網 - 編程語言 - c#編程從圖像中提取數據有壹個問題。

c#編程從圖像中提取數據有壹個問題。

///& lt;總結& gt

///獲取具有指定透明度的圖像。

///& lt;/summary & gt;

///& lt;param name = " SourceBitmap " & gt源圖像

///& lt;param name = " OpaCityValue " & gt透明度百分比

///& lt;returns & gt& lt/returns & gt;

///& lt;備註& gt& lt/備註& gt

公共位圖TheTransparentBitmap(位圖源位圖,雙不透明度值)

{

嘗試{

//定義壹個臨時圖片副本

Bitmap ForOutBitmap =新位圖(source Bitmap);

//定義圖像數據

BitmapData BMP data = new BitmapData();

//給圖像指定區域的數據賦值。

bmpDATA = ForOutBitmap。LockBits(新矩形(0,0,SourceBitmap。寬度- 1,源位圖。Height - 1),ImageLockMode。只讀,像素格式。format 32 bppargb);

//定義用於計算的字節數組。

byte[] BTS =新字節[bmpDATA。Stride * bmpDATA。身高+1];

//將Byte設置為指定的圖像數據。

系統。runtime . interop services . marshal . copy(BMP data。掃描0,BTS,0,BTS。長度-1);

//用於計算的變量,以避免“除數不能為0”

int tmp value = 0;

//因為已經被指定為32位ARGB模式,所以每四個數組都是B G R A,A表示透明。

for(int I = 0;我& lt= BTS。長度-4;I += 4) {

tmp value = BTS[I+3]* opacity value;

//修改透明度

BTS[I+3]= tmp value;

}

//計算後將字節組返回給指定的圖像數據。

系統。runtime . interop services . marshal . copy(BTS,0,bmpDATA。掃描0,BTS。長度-1);

//解鎖圖像數據,以便調用線程可以繼續執行。

ForOutBitmap。解鎖位(BMP data);

//返回處理後的圖像。

返回ForOutBitmap

} catch (Exception ex) {

//如果發生異常,則返回空值。

返回null

}

}

  • 上一篇:合肥師範學院的計算機專業怎麽樣?
  • 下一篇:數控加工中心G16G15等使用方法
  • copyright 2024編程學習大全網