Tôi tin rằng bạn cần phải sử dụng SetPixel (hoặc phương pháp tương đương với thiết lập các giá trị màu trực tiếp) để có được các điểm ảnh là "màu trắng trong suốt".
Bạn có thể sử dụng phương pháp Graphics.Clear
để đặt màu hoặc pixel, nhưng bạn không thể sử dụng nó để đặt chúng thành màu trong suốt và màu. Tôi đã thử cách này để đặt pixel thành một phần của bitmap:
using (Graphics g = Graphics.FromImage(theBitmap)) {
g.Clip = new Region(new Rectangle(10, 10, 80, 80));
g.Clear(Color.FromArgb(0, Color.White));
}
Các pixel trong khu vực kết thúc là "đen trong suốt": 0,0,0,0. Ngay cả vẽ một hình chữ nhật màu trắng vững chắc trước khi thanh toán bù trừ không giúp đỡ. Khi alpha bằng 0, các thành phần màu khác cũng bằng không.
Sử dụng alpha gần như trong suốt như 1 hoạt động tốt, các điểm ảnh kết thúc là "màu trắng gần như trong suốt": 1,255,255,255.
Nó không * không phổ biến để sử dụng kênh màu cho dữ liệu, nói cho một bản đồ địa hình trong một trò chơi nơi nước, đường, đá, tuyết là ARGB. Vì vậy, đôi khi bạn muốn có thể tạo bitmap với các giá trị RGB bằng không và alpha khác. –
BTW màu trong trường hợp của tôi là có liên quan vì sau đó xử lý 'trộn' các khu vực trong suốt màu sắc với các khu vực màu sắc khác. – mackenir