(一)、影像
最常見的影像(image),就是「二進位影像」。凡是副檔名為bmp的影像檔,就是個二進位影像檔。二進位影像在C#中是個類別物件。
1.顏色物件:
(1) 建立一個顏色物件:
(1-1) Color 變數名稱 = Color.FromArgb(int R,int G,int B);
其中,R、G、B為0~255的整數,表示該顏色的R值、G值、B值。A值預設為255。
(1-2) Color 變數名稱 = Color.FromArgb(int A,int R,int G,int B);
其中,A、R、G、B為0~255的整數,表示該顏色的A值、R值、G值、B值。
(2) 顏色物件的成員:
顏色.A:該顏色的A值(又稱alpha值,或「不透明度」),為0~255的整數。數字越高越不透明,越低越透明。
顏色.R:該顏色的R值,為0~255的整數。
顏色.G:該顏色的G值,為0~255的整數。
顏色.B:該顏色的B值,為0~255的整數。
2.位元圖片:
(1) 位元圖片物件的建構式:
(1-1) Bitmap 變數名稱=new Bitmap(int X,int Y);
其中,X、Y都是正整數。表示建立一個空白的位元圖片(即其每一個像素的A、R、G、B值都是0)。其寬度是X個像素,高度是Y個像素。例如:
Bitmap p1=new Bitmap(100,100);
(1-2) Bitmap 變數名稱=new Bitmap(string 路徑);
從路徑中讀取位元圖片。
(1-3) Bitmap 變數名稱=new Bitmap(Image 影像);
表示將該影像給存入此位元圖片。那麼,位元圖片的每一個像素的A、R、G、B值、以及寬度和高度,都和該影像是一樣的。例如:
Image A=Image.FromFile("D:/User-Data/Desktop/f1.jpg");
Bitmap p1=new Bitmap(A);
(2) 位元圖片的寬與高:
位元圖片.Width為該圖片的寬,位元圖片.Height為該圖片的高。
(3) 取得位元圖片中,某一個像素點的顏色:
位元圖片.GetPixel(int X,int Y);
可以回傳一個顏色物件,該顏色是此位元圖片中,x座標為X、y座標為Y的像素之顏色。
※ 註:位元圖片的像素座標,是從0開始數起。也就是說,一張寬100、高100的位元圖片,像素的X、Y座標都是從0~99。
(4) 設定位元圖片中,某一個像素點的顏色:
位元圖片.SetPixel(int X, int Y, Color C);
在此位元圖片中,設定x座標為X、y座標為Y的像素其顏色為C。
(5) 顯示圖片於picturebox上:
pictureBox1.Image = 位元圖片名稱;
範例如:
Bitmap B = new Bitmap(100, 100);
for (int i = 0; i < B.Width; i++)
{
for (int j = 0; j < B.Height; j++)
{ B.SetPixel(i, j, Color.FromArgb(i, j, 0)); }
}
pictureBox1.Image = B;
執行後顯示:
(6) 將此位元圖片存檔:
位元圖片.Save(檔案路徑, 檔案編碼格式);
其中,檔案路徑的資料形態是字串。檔案編碼格式則是個System.Drawing.Imaging.ImageFormat類別物件,這個物件可以決定圖檔要用哪種編碼格式來存檔。此物件常用的寫法如下:
※ System.Drawing.Imaging.ImageFormat.Bmp //表示用Bmp檔的編碼方式存檔
※ System.Drawing.Imaging.ImageFormat.Jpeg //表示用Jpeg檔的編碼方式存檔
※ System.Drawing.Imaging.ImageFormat.Gif //表示用Gif檔的編碼方式存檔(Gif檔可顯示透明度、動態圖檔)
※ System.Drawing.Imaging.ImageFormat.Png //表示用Png檔的編碼方式存檔(Png檔可顯示透明度)
※ System.Drawing.Imaging.ImageFormat.Icon //表示將檔案存成一個windows Icon檔案,也就是桌面圖示的檔案
註一:若檔案編碼格式不寫,則預設用Png檔的編碼方式存檔。
註二:檔案編碼格式乃是檔案的本質,不因檔案路徑中副檔名而改變。也就是說,若今有一個圖檔,其檔案編碼格式是System.Drawing.Imaging.ImageFormat.Png,但檔案路徑為"xxx.bmp ",則其仍然是個Png檔,只不過檔名是xxx.bmp。如此一來造成此檔案「名不符實」,會產生使用上的誤解,故要小心!
留言列表