Tôi đang cố gắng tạo bitmap khá lớn trong ứng dụng C# (6000x6000, mặc dù hầu hết là trong suốt) và cần vẽ chúng vào API đầu ra cụ thể chỉ hỗ trợ vẽ hình chữ nhật.Thuật toán để giảm hình ảnh thành hình chữ nhật?
Bây giờ, tôi tự hỏi liệu có ai có thuật toán để giảm bitmap thành một chuỗi hình chữ nhật được tô màu của các ảnh bitmap có màu tương tự hay không; kể từ khi vẽ tất cả mọi thứ như một hình chữ nhật 1x1 là cách quá chậm cho mục đích này. Ví dụ, một vòng tròn nên được giảm xuống một hình chữ nhật trung tâm lớn, trong khi phần còn lại của vòng tròn được giảm xuống thành hình chữ nhật hiệu quả. Thuật toán thậm chí không cần phải nhanh như vậy, vì phần lớn thời gian được thực hiện bằng phương pháp đơn pixel của tôi là bằng cách lặp qua từng hình chữ nhật trên chính API đó.
Tôi cho rằng bạn không muốn cho phép thuật toán thay đổi pixel để giảm số lượng hình chữ nhật? Ngoài ra, bạn có bất kỳ ý tưởng về những đặc điểm của các hình dạng sẽ được? Các hình dạng như hình tròn có nhiều đường thẳng đứng hoặc nằm ngang sẽ có nhiều hình chữ nhật hơn. –