2012-06-01 19 views
17

मैं RGB colors(0 - 255)0 से 1 स्केल के लिए कुछ की गणना करने का प्रयास कर रहा हूं। क्या कोई ऑनलाइन कनवर्टर जानता है या यह गणित सूत्र है?आरजीबी मान 0 से 1 स्केल

आइए कहें कि मैं 125 आरजीबी (0 से 255 स्केल) को 0 से 1 स्केल में परिवर्तित करना चाहता हूं।

+10

शायद 255 से विभाजित हो? – MikkoP

+0

उत्कृष्ट @ el.severo –

उत्तर

36

यह बस अपने आरजीबी मूल्य में विभाजित करने की एक बात है, यह 255 से x फोन:

x = 95 तो आपके मूल्य 95/255 = 0.373 (डी पी के लिए 3)

6
a = x/255 

या

x = a * 255 

जहां x आरजीबी मूल्य है और a आपका इच्छित परिणाम होगा।

1

आप 0-255 का उपयोग जारी रखना चाहते हैं, तो कर सकते हैं है निम्न उदाहरण के रूप में इसके लिए एक फ़ंक्शन बनाएं।

function setFillColor2(...) 
    local object,r,b,g=... 
    object:setFillColor(r/255, b/255,g/255) 
end 

circle1 = display.newCircle(150,250, 50) 
setFillColor2(circle1,23,255,12) 
0

सबसे आसान तरीका है 0 के लिए 0-1 या 256 के लिए या तो 255 से विभाजित करने के लिए करता है, तो - एक सा 1. कम से कम उत्तरार्द्ध कभी कभी फायदे हैं। आपको निश्चित या फ़्लोटिंग पॉइंट में डिवीजनों को करने की ज़रूरत है, निश्चित रूप से पूर्णांक अंकगणित में नहीं।

हालांकि वास्तव में 0-255 पर आरजीबी चैनल मान के लिए मानव प्रतिक्रिया रैखिक नहीं है, न ही डिवाइस की प्रतिक्रिया है। अक्सर आपको गामा सुधार करने की ज़रूरत होती है। यह सब बहुत जल्दी शामिल हो जाता है, और यह आमतौर पर कम अंत ग्राफिक्स के लिए ज्यादा मायने रखता नहीं है। हालांकि, उच्च अंत ग्राफिक्स के लिए, आप अक्सर आरजीबी रंगीन स्पेस से बाहर निकलना चाहते हैं, और फिर अंत में आरजीबी पिक्सल को अंत छवि में फ्लश करने के लिए आपको गैर-रैखिक रूपांतरण फ़ंक्शन की आवश्यकता होती है।

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