Tất cả các chương trình vẽ, độc lập với cách đơn giản hoặc phức tạp của chúng, đi kèm với công cụ tô màu. Điều này về cơ bản thay thế màu sắc của một vùng kín với màu khác. Tôi biết rằng có các API khác nhau để làm điều này, nhưng tôi quan tâm đến thuật toán. Thuật toán hiệu quả để triển khai công cụ này là gì?Thao tác điền hoạt động như thế nào trong các ứng dụng vẽ?
Một vài điều tôi có thể nghĩ ra một cách nhanh chóng là:
- Chuyển đổi hình ảnh thành một bản đồ nhị phân, nơi pixel trong màu được thay thế là
1
và tất cả các màu khác là0
. - Tìm một vùng khép kín xung quanh điểm bạn muốn thay đổi sao cho tất cả các điểm ảnh bên trong là 1 và tất cả các điểm ảnh lân cận là 0.
@dbr: "lân cận"? Bạn Brits nói ngôn ngữ của chúng tôi buồn cười. :-) Tiêu đề tốt hơn nhiều, mặc dù! –