Pha trộn màu chỉ là một nội suy tuyến tính trên mỗi kênh, phải không? Vì vậy, phép toán khá đơn giản. Nếu bạn có RGBA1 trên RGB2, kết quả hình ảnh hiệu quả RGB3 sẽ là:
r3 = r2 + (r1-r2)*a1
g3 = g2 + (g1-g2)*a1
b3 = b2 + (b1-b2)*a1
… Trong đó kênh alpha từ 0,0 đến 1,0.
Kiểm tra tình trạng: nếu alpha là 0, RGB3 có giống RGB2 không? Đúng. Nếu alpha là 1, RGB3 có giống RGB1 không? Đúng.
Nếu bạn chỉ khóa màu nền và màu cuối cùng, thì có một số lượng lớn màu RGBA (vô hạn, trong không gian dấu phẩy động) có thể đáp ứng yêu cầu. Vì vậy, bạn phải chọn màu của thanh hoặc mức độ mờ mà bạn muốn, và tìm ra giá trị của cái kia.
Chọn màu dựa trên Alpha
Nếu bạn biết RGB3 (màu mong muốn cuối cùng), RGB2 (màu nền) và A1 (độ mờ bạn muốn) và bạn chỉ đang tìm RGB1, thì chúng tôi có thể sắp xếp lại các phương trình như sau:
r1 = (r3 - r2 + r2*a1)/a1
g1 = (g3 - g2 + g2*a1)/a1
b1 = (b3 - b2 + b2*a1)/a1
Về mặt lý thuyết, có một số kết hợp màu là có thể, nhưng không thể với dải RGBA tiêu chuẩn. Ví dụ: nếu nền là màu đen tuyền, màu cảm nhận mong muốn là màu trắng tinh khiết và alpha mong muốn là 1%, thì bạn sẽ cần:
r1 = g1 = b1 = 255/0.01 = 25500
… Một màu trắng siêu sáng 100 × sáng hơn bất kỳ màu nào hiện có.
Chọn Alpha dựa trên màu sắc
Nếu bạn biết RGB3 (màu mong muốn cuối cùng), RGB2 (màu nền) và RGB1 (màu bạn có mà bạn muốn thay đổi độ mờ) và bạn chỉ đang tìm A1, thì chúng tôi có thể sắp xếp lại do đó, các phương trình:
a1 = (r3-r2) / (r1-r2)
a1 = (g3-g2) / (g1-g2)
a1 = (b3-b2) / (b1-b2)
Nếu những giá trị này cung cấp các giá trị khác nhau, thì bạn không thể làm cho nó khớp chính xác, nhưng bạn có thể tính trung bình các alpha để đến gần nhất có thể. Ví dụ, không có độ mờ nào trên thế giới cho phép bạn đặt màu xanh lá cây lên màu đỏ để có được màu xanh lam.