- ใช้ฟังก์ชัน Bitmap.GetPixel และ Bitmap.SetPixel วิธีนี้จะง่ายที่สุด แต่มีข้อจำกัดคือ ใช้ได้กับรูปที่เป็นแบบ RGB เท่านั้น และ การประมวลผลค่อนข้างช้า
- ใช้ pointer เข้าไปจัดการกับค่าของ pixel ในหน่่วยความจำโดยตรง ข้อดีคือเป็นวิธีที่เร็วที่สุด แต่ถือว่าเป็น unsafe code ก่อนคอมไพล์ต้องไปกำหนดรูปแบบให้ยอมรับ unsafe code ด้วย
- ทำการสำเนาค่าค่าของ pixel ในหน่่วยความจำ มาเก็บไว้ในตัวแปรชุด จากนั้นก็ประมวลผลค่าของ pixel ให้เสร็จเรียบร้อย จึงค่อยสำเนาค่าตัวแปรชุด กลับไปทับค่าของ pixel ในหน่่วยความจำ
เป้าหมาย
สร้างฟังก์ชันในการกลับสี (Invert, Negative)
เมื่อ Invert เสร็จ
หลักการ
การ Invert ก็คือการนำค่าสูงสุดของสี มาหักลบด้วยค่าของ pixel นั้น เช่น
p = 255 - p
รหัสโปรแกรมก็จะเป็นประมาณนี้ครับ
เสร็จแล้วครับ หากจะเรียกใช้งานฟังก์ชันนี้จากฟอร์มหลัก อย่าลืมใช้คำสั่ง this.Invalidate() เพื่อให้ฟอร์มรีเฟรชด้วยนะครับ
No comments:
Post a Comment