سؤال

أنا أبحث عن صيغة لتحويلها.

أعلم أن تحويل الشفافية العامة

ألفا * جديد + (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 يتبع القواعد. أنا أميل إلى أتساءل لماذا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top