আমার অনুরূপ প্রশ্নের উত্তর নিয়ে বিল্ডিং ।
স্বতন্ত্র লাল, সবুজ এবং নীল তীব্রতা পেতে আপনাকে হেক্স কোডটি 3 টুকরো টুকরো করতে হবে। কোডের প্রতিটি 2 ডিজিট হেক্সাডেসিমাল (বেস -16) স্বরলিপিতে একটি মান উপস্থাপন করে। আমি রূপান্তরটির বিশদটি এখানে পাবেন না, তারা সন্ধান করা সহজ।
একবারে আলাদা আলাদা রঙের জন্য আপনার তীব্রতা হয়ে গেলে আপনি রঙের সামগ্রিক তীব্রতা নির্ধারণ করতে এবং সংশ্লিষ্ট পাঠ্যটি চয়ন করতে পারেন।
if (red*0.299 + green*0.587 + blue*0.114) > 186 use #000000 else use #ffffff
186 এর প্রান্তিকতা তত্ত্বের ভিত্তিতে, তবে এটি স্বাদে সামঞ্জস্য করা যেতে পারে। 150 এর এক প্রান্তিকের নীচের মন্তব্যের উপর ভিত্তি করে আপনার জন্য আরও ভাল কাজ করতে পারে।
সম্পাদনা করুন: উপরেরটি সহজ এবং যুক্তিসঙ্গতভাবে ভাল কাজ করে এবং স্ট্যাক ওভারফ্লোতে এখানে ভাল গ্রহণযোগ্যতা রয়েছে বলে মনে হয়। তবে নীচের মন্তব্যগুলির মধ্যে একটিতে দেখা যাচ্ছে যে এটি কিছু পরিস্থিতিতে ডাব্লু 3 সি নির্দেশিকা মেনে চলতে না পারে। এর সাথে আমি একটি পরিবর্তিত ফর্ম পেয়েছি যা সর্বদা নির্দেশিকাগুলির উপর ভিত্তি করে সর্বোচ্চ বিপরীতে চয়ন করে। আপনার যদি ডাব্লু 3 সি নিয়ম মেনে চলার দরকার
না হয় তবে আমি উপরের সরল সূত্রটি বদ্ধ থাকি।
ডাব্লু 3 সি সুপারিশগুলিতে বৈপরীত্যের জন্য প্রদত্ত সূত্রটি হল (L1 + 0.05) / (L2 + 0.05)
, যেখানে L1
হালকা রঙের L2
আলোকরশ্মি এবং 0.0-1.0 এর স্কেলের অন্ধকারের আলোকসজ্জা। কালো রঙের আলোকসজ্জা ০.০ এবং সাদা ০.০, সুতরাং এই মানগুলি প্রতিস্থাপন করা আপনাকে সর্বোচ্চ বিপরীতে একটি নির্ধারণ করতে দেয়। যদি সাদা রঙের জন্য বিপরীতে সাদা রঙের তুলনা বেশি হয় তবে কালো ব্যবহার করুন, অন্যথায় সাদা ব্যবহার করুন। L
পরীক্ষাটি হওয়ার সাথে সাথে আপনি যে রঙটি পরীক্ষা করছেন তা আলোকিত করে :
if (L + 0.05) / (0.0 + 0.05) > (1.0 + 0.05) / (L + 0.05) use #000000 else use #ffffff
এটি বীজগণিতভাবে এটিকে সহজতর করে:
if L > sqrt(1.05 * 0.05) - 0.05
বা আনুমানিক:
if L > 0.179 use #000000 else use #ffffff
একমাত্র জিনিসটি গণনা করা L
। সেই সূত্রটিও গাইডলাইনে দেওয়া হয়েছে এবং এটি দেখে মনে হচ্ছে যে এসআরবিবি থেকে রৈখিক আরজিবিতে রূপান্তরিত হবে তারপরে আইটিইউ-আর সুপারিশটি বিটি.70০৯ দ্বারা আলোকিততার জন্য।
for each c in r,g,b:
c = c / 255.0
if c <= 0.03928 then c = c/12.92 else c = ((c+0.055)/1.055) ^ 2.4
L = 0.2126 * r + 0.7152 * g + 0.0722 * b
ডাব্লু 3 সি নির্দেশিকাতে আবদ্ধ হওয়ার কারণে 0.179 এর প্রান্তিক পরিবর্তন করা উচিত নয়। যদি ফলাফলগুলি আপনার পছন্দ অনুসারে না পেয়ে থাকে তবে উপরের সরল সূত্রটি ব্যবহার করে দেখুন।