Suppose that
- Image<Bgr,byte> img = new Image<Bgr,byte>();
มีสองวิธีสำหรับการเข้าถึงพิกเซลตำแหน่งแถวที่ y และหลักที่ x ของ img
There are two ways to access the pixel on the y-th row and x-th column of img
วิธีที่ปลอดภัยแต่ช้า คือ ใช้ img[y,x]
The safe way, but slow, is using img[y,x]
สำหรับการอ่านข้อมูลพิกเซล
To get pixel data,
- Bgr color = img[y,x];
สำหรับการเขียนข้อมูลพิกเซล
To set pixel data,
- img[y,x] = new Bgr(255,0,0);
วิธีที่รวดเร็ว คือ ใช้ img.Data[y,x,channel]
The fast way is using img.Data[y,x,channel]
สำหรับการอ่านข้อมูลพิกเซล
To get pixel data,
- byte color = img.Data[y,x,channel];
สำหรับการเขียนข้อมูลพิกเซล
To set pixel data,
- img.Data[y,x,channel] = 255;
channel คือ ช่องสีของ img
channel is the channel of img
- 0 is Blue
- 1 is Green
- 2 is Red
สำหรับลูป วิธีการที่แนะนำเป็นตามโค้ดข้างล่าง
For a loop, the recommended way is below
- byte[,,] img_data = img.Data;
- for(int i = 0; i < img.Height; i++)
- {
- for(int j=0; j < img.Width; j++)
- {
- img_data[y,x,0] = 255;
- }
- }
หมายเหตุ: เราไม่ควรใช้ C# property ภายในลูป เพราะมันใช้เวลานาน
Notice: we should not use C# property inside a loop because it takes long time
No comments:
Post a Comment