حساب RGB الناتج من 2 لون ، واحد شفاف
-
29-09-2019 - |
سؤال
أنا أبحث عن صيغة لتحويلها.
أعلم أن تحويل الشفافية العامة
ألفا * جديد + (1 - ألفا) * قديم
أملك:
Color A : RGB( 85, 113, 135 )
Color B : RGB( 43, 169, 225 )
اللون A لديه 90 ٪ عتامة ويتم وضعه فوق اللون ب ، مما يؤدي إلى
Color C : RGB( 65, 119, 145 )
سؤالي هو ، كيف تحصل على اللون ج؟ إذا استبدلت اللون B لشيء آخر ، كيف يمكنني الحصول على اللون C؟
إليك مثال آخر ، نفس اللون الأساسي:
Color A : RGB( 85, 113, 135 )
Color B : RGB( 45, 67, 82 )
--------
Color C : RGB( 65, 109, 131 )
هذه أمثلة تعمل مع الصور - أحاول الآن حساب اللون المتبقي C حتى أتمكن من تعيين لون خلفية.
تحديث ، يرجى الاطلاع على الإجابة المقبولة. ال red
في الأمثلة المذكورة أعلاه غريبة - الإجابة المقبولة لها الصيغة الصحيحة لجميع الألوان ، لقد اختبرتها في Photoshop.
المحلول
يبدو أن الصيغة الخاصة بك هي بالتحديد الصيغة المستخدمة في الأمثلة الخاصة بك ، ويتم حسابها لكل مكون ، وتدويرها.
r_c: = السقف (r_a * alpha) + السقف (r_b * (1 - ألفا))
G_c := ceiling(G_a * alpha) + ceiling (G_b * (1 - alpha))
B_c := ceiling(B_a * alpha) + ceiling (B_b * (1 - alpha))
غريب ، على الرغم من ذلك ، لا يبدو أن مكون R يتبع القواعد. أنا أميل إلى أتساءل لماذا.