2011-08-05 21 views
22

की गणना के लिए एल्गोरिदम प्रत्येक खंड के लिए 0.0 से 1.0 की सीमा में एक आरजीबी रंग है, मुझे रंग के विपरीत होने के लिए एक एल्गोरिदम चाहिए, कोई विचार मैं यह कैसे कर सकता हूं?उलटा रंग

उत्तर

29
newR = 1.0 - r 
newG = 1.0 - g 
newB = 1.0 - b 

रंग एक premultiplied अल्फा मूल्य 1.0 के स्थान पर अल्फा का उपयोग किया जाता है:

newR = a - r 
newG = a - g 
newB = a - b 
+0

प्रश्न पूछने के बाद मैं कागज पर इसे करने के दौरान भी इसे समझता हूं, इतना आसान ... –

+0

क्या रंग आरजीबीए (1, 1, 1, 1) है? –

+0

@ रिकार्डो, आरजीबीए (1,1,1,1) के विपरीत आरजीबीए (0,0,0,1) है। क्या उत्तर के बारे में कुछ भ्रमित है जो इसे स्पष्ट नहीं करता है? –

2

आप 255 आरजीबी मूल्यों का उपयोग कर रहे हैं, तो आप कुछ इस तरह कर सकता है:

newR = 255 - r; 
 
newG = 255 - g; 
 
newB = 255 - b;

इस अवधारणा को समझने के लिए, प्रत्येक मान को 0 से 255 तक जाने वाली संख्या रेखा के रूप में कल्पना करें। यदि आप उस संख्या रेखा पर एक संख्या ग्राफ करते हैं तो संख्या संख्या रेखा की शुरुआत से दूरी दूर है। इसे अस्वीकार करने के लिए, संख्या को संख्या रेखा के दूसरे छोर पर जाना चाहिए। यह एल्गोरिदम मूल रूप से शुरुआत या अंत को घुमाने के बिना संख्या रेखा को फ़्लिप करता है। हमारी संख्या रेखा 0 से 255 तक है, इसलिए, यदि संख्या शुरुआत से 10 दूर थी (10), तो यह अंत (245) से 10 दूर होगी, इस प्रकार रंग को अस्वीकार कर देगा।

संबंधित मुद्दे