RGB থেকে HSL কনভার্টার

টাইপ করার সাথে সাথেই RGB-কে HSL-তে রূপান্তর করুন — সম্পূর্ণ বিনামূল্যে, তাৎক্ষণিকভাবে, উদাহরণ এবং সাধারণ রঙের চার্টসহ।

বাস্তব উদাহরণ

RGB 255, 87, 51 = HSL 11, 100%, 60%

রূপান্তর যেভাবে কাজ করে

  • HSL একই রঙকে হিউ (কালার হুইলে ০–৩৬০°), স্যাচুরেশন এবং লাইটনেস দিয়ে প্রকাশ করে — শুধুমাত্র একটি উপাদান পরিবর্তন করে কোনো রঙকে গাঢ় বা হালকা করার জন্য এটি বেশ সুবিধাজনক।

RGB এবং HSL-তে সাধারণ রঙসমূহ

রঙRGBHSL
লাল255, 0, 00, 100%, 50%
কমলা255, 165, 039, 100%, 50%
হলুদ255, 255, 060, 100%, 50%
সবুজ0, 128, 0120, 100%, 25%
সায়ান0, 255, 255180, 100%, 50%
নীল0, 0, 255240, 100%, 50%
বেগুনি128, 0, 128300, 100%, 25%
গোলাপী255, 192, 203350, 100%, 88%
বাদামী165, 42, 420, 59%, 41%
সাদা255, 255, 2550, 0%, 100%
ধূসর128, 128, 1280, 0%, 50%
কালো0, 0, 00, 0%, 0%

প্রতিটি রূপান্তর আপনার ব্রাউজারে সম্পন্ন হয়। আপনার কোনো ইনপুট BroBroGo-তে আপলোড করা হয় না।

সাধারণ জিজ্ঞাসা (FAQ)

আমি কীভাবে RGB থেকে HSL-তে রূপান্তর করব?

উপরে আপনার RGB মানটি টাইপ বা পেস্ট করুন — টাইপ করার সাথে সাথেই HSL মানটি আপডেট হবে। আপনি কালার সোয়াচ ব্যবহার করে ভিজ্যুয়ালি রঙ নির্বাচন করতে পারেন।

রূপান্তরটি কি একদম নিখুঁত?

মানগুলোকে পূর্ণ সংখ্যায় রাউন্ড করা হয়, যা CSS এবং ডিজাইন টুলগুলো প্রত্যাশা করে। এই সামান্য পার্থক্য খালি চোখে ধরা পড়ে না।

সরঞ্জামটি কী করে এবং কেন এটি আলাদা

এই পৃষ্ঠায় আপনি একটি RGB রং — তিনটি সংখ্যা, প্রতিটি ০ থেকে ২৫৫-এর মধ্যে — লিখলে তাৎক্ষণিকভাবে তার HSL সমতুল্য দেখতে পাবেন (Hue ডিগ্রিতে, Saturation ও Lightness শতাংশে)। পাশাপাশি HEX, HSV, CMYK (পর্দার জন্য আনুমানিক) এবং LAB ফরম্যাটেও মান দেখানো হয়। যেকোনো ক্ষেত্র সম্পাদনা করলেই অন্য সব ক্ষেত্র স্বয়ংক্রিয়ভাবে পরিবর্তিত হয়। সব রূপান্তর আপনার ব্রাউজারের ভিতরেই ঘটে; কিছুই সার্ভারে আপলোড হয় না।

এই পৃষ্ঠাকে বিশেষ করে তোলে মূল বিষয়টি: এটি পর্দার জন্য তৈরি RGB মডেল থেকে এমন একটি মডেলে রূপান্তরিত করে যা মানুষের রং বোঝার জন্য তৈরি — HSL। RGB-তে একটি চ্যানেলের মান বদলালে প্রায়ই আপাত Hue বদলে যায়। কিন্তু HSL-এ Lightness আলাদাভাবে সামঞ্জস্য করা যায়, Hue অপরিবর্তিত রেখে। তাই প্যালেট, থিম এবং অ্যাক্সেসিবল কন্ট্রাস্ট ভেরিয়েশন তৈরির জন্য HSL আদর্শ পছন্দ।

কীভাবে RGB পর্দায় রং তৈরি করে

RGB (Red, Green, Blue) একটি সংযোজী রং মডেল। পর্দার প্রতিটি পিক্সেল তিনটি ছোট আলো তৈরি করে — লাল, সবুজ ও নীল। প্রতিটি ০ (একদম অন্ধকার) থেকে ২৫৫ (পূর্ণ উজ্জ্বলতা) পর্যন্ত মান নেয়। এই তিনটি মানের সমন্বয়ে কোটি কোটি রং তৈরি করা যায়। মানগুলিকে সাধারণত দশমিক সংখ্যা বা হেক্সাডেসিমেল (যেমন #4F46E5) আকারে লেখা হয়।

সবচেয়ে প্রচলিত ওয়েব স্ট্যান্ডার্ড হলো sRGB (Standard RGB) কালার স্পেস। এই পৃষ্ঠায় ব্যবহৃত সব RGB মান sRGB-ভিত্তিক। যখন আপনি 79, 70, 229 লিখবেন, তখন এটি একটি নির্দিষ্ট বেগুনি-নীল রং নির্দেশ করে — যেমনটা একটি কম্পিউটার মনিটর দেখাবে।

HSL কী এবং কেন এটি মানুষের উপলব্ধির কাছাকাছি

HSL-এর পূর্ণরূপ: Hue (বর্ণ), Saturation (সম্পৃক্তি), Lightness (হালকাতা)।

  • Hue: ০° থেকে ৩৬০° পর্যন্ত একটি বৃত্ত। ০° = লাল, ১২০° = সবুজ, ২৪০° = নীল। অন্যান্য বর্ণ (যেমন বেগুনি, কমলা) এর মাঝে অবস্থান করে।
  • Saturation: ০% থেকে ১০০%। ০% অর্থাৎ ধূসর (কোনো Hue নেই), ১০০% অর্থাৎ সম্পূর্ণ বিশুদ্ধ বর্ণ।
  • Lightness: ০% (কালো) থেকে ১০০% (সাদা)। ৫০% হলো "স্বাভাবিক" অবস্থা — যেখানে বর্ণটি সবচেয়ে বেশি চেনা যায়।

RGB-তে কোনো রং যেমন (79, 70, 229) দেখলে বোঝা মুশকিল যে এটি কতটা হালকা বা কী বর্ণ। HSL-এ একই রং হবে hsl(243°, 75%, 59%)। এখানে ২৪৩° = নীল-বেগুনি, সম্পৃক্তি ৭৫% (অর্থাৎ মোটামুটি বিশুদ্ধ), হালকাতা ৫৯% (অর্থাৎ মধ্যম হালকা)। এই ফরম্যাটে রং সম্পর্কে যুক্তি করা সহজ।

কেন প্যালেট ও থিম তৈরিতে HSL ব্যবহার করা হয়

ডিজাইনার ও ডেভেলপারদের জন্য HSL অত্যন্ত সুবিধাজনক কারণ:

  1. Lightness স্বাধীনভাবে সামঞ্জস্য করা যায় — একই Hue ও Saturation ধরে রেখে শুধু Lightness বাড়িয়ে বা কমিয়ে টিন্ট, শেড ও টোন তৈরি করা যায়। উদাহরণস্বরূপ, hsl(243°, 75%, 50%) একটি গাঢ় নীল, আর hsl(243°, 75%, 80%) একটি প্যাস্টেল নীল — উভয়ের বর্ণিক পরিচয় (Hue) একই।

  2. কন্ট্রাস্ট ভেরিয়েশন তৈরি করা সহজ — WCAG অ্যাক্সেসিবিলিটি গাইডলাইন অনুযায়ী পটভূমি ও লেখার মধ্যে পর্যাপ্ত কনট্রাস্ট রাখতে Lightness ঠিক করা যায় Hue নড়াচড়া না করেই।

  3. ডার্ক ও লাইট থিম — একটি ব্র্যান্ডের রং নিন, Lightness কমিয়ে ডার্ক থিমের জন্য গাঢ় সংস্করণ, বা Lightness বাড়িয়ে লাইট থিমের জন্য হালকা সংস্করণ তৈরি করা যায়। RGB-তে একই কাজ করতে তিনটি চ্যানেলের অনুপাত বজায় রাখা জটিল।

  4. ডেটা ভিজুয়ালাইজেশন — পরিমাণ বুঝাতে ক্রমিক রংয়ের মাপনিড় (sequential color scale) তৈরি করতে Lightnessকে কাজে লাগানো হয়। HSL-এর Lightness চ্যানেল স্বজ্ঞাতভাবে উজ্জ্বলতা বাড়ায় বা কমায়, যা সংখ্যার ক্রম বোঝাতে সাহায্য করে।

RGB থেকে HSL-এ রূপান্তরের গণিত

রূপান্তরটি কয়েকটি ধাপে হয়। ধরা যাক RGB মান R, G, B (প্রত্যেকটি ০–২৫৫)।

ধাপ ১: সাধারণীকরণ — প্রতিটি মানকে ২৫৫ দিয়ে ভাগ করে ০–১-এ নিয়ে আসা। বলা যাক r = R/255, g = G/255, b = B/255

ধাপ ২: সর্বোচ্চ ও সর্বনিম্ন নির্ণয়max = সর্বোচ্চ(r, g, b), min = সর্বনিম্ন(r, g, b)। পার্থক্য delta = max - min

ধাপ ৩: Lightness (L)L = (max + min) / 2। শতাংশে প্রকাশ করতে ১০০ দিয়ে গুণ করুন।

ধাপ ৪: Saturation (S) — যদি delta = 0 (অর্থাৎ ধূসর), তবে S = 0%। অন্যথায়:

  • যদি L <= 0.5, তবে S = delta / (max + min)
  • যদি L > 0.5, তবে S = delta / (2 - max - min) শতাংশে প্রকাশ।

ধাপ ৫: Hue (H) — যদি delta = 0, তবে H = 0°। অন্যথায়, কোন চ্যানেল সর্বোচ্চ তার ওপর ভিত্তি করে:

  • যদি max = r, H = 60° × ((g - b)/delta mod 6)
  • যদি max = g, H = 60° × ((b - r)/delta + 2)
  • যদি max = b, H = 60° × ((r - g)/delta + 4)

ফলকে ০–৩৬০-এর মধ্যে নিয়ে আসা হয়। এই পৃষ্ঠা স্বয়ংক্রিয়ভাবে এই গণনা করে এবং ভুল ইনপুটের জন্য ত্রুটি বার্তা দেখায়: "Enter RGB as three numbers 0–255, like 79, 70, 229."

অ্যাক্সেসিবিলিটির জন্য HSL ব্যবহার

ওয়েব অ্যাক্সেসিবিলিটি নির্দেশিকা (WCAG 2.1) অনুযায়ী, টেক্সট ও ব্যাকগ্রাউন্ডের মধ্যে ন্যূনতম কন্ট্রাস্ট রেশিও ৪.৫:১ (সাধারণ টেক্সটের জন্য) হওয়া প্রয়োজন। HSL-এ Lightness নিয়ন্ত্রণ করে সরাসরি এই রেশিও সামঞ্জস্য করা যায়। উদাহরণস্বরূপ, একটি নীল Hue (২৪০°) ধরে রাখুন, Lightness ৬০% থেকে ৪০%-এ নামিয়ে আনলে কনট্রাস্ট বাড়বে। RGB-তে এই কাজটি করতে গেলে তিনটি মানই বদলাতে হতো এবং Hue অজান্তেই স্থানান্তরিত হতে পারত।

তবে সতর্কতা: HSL-এ একই Lightness হলেও ভিন্ন Hue-এর উজ্জ্বলতা চোখে ভিন্ন মনে হতে পারে। উদাহরণস্বরূপ, হলুদের Lightness ৫০% অনেক বেশি উজ্জ্বল লাগে, নীলের Lightness ৫০% অনেক গাঢ় লাগে। এটি একটি পরিচিত সীমাবদ্ধতা।

HSL-এর সীমাবদ্ধতা ও বিকল্প

HSL একটি উপলব্ধি-অসম (not perceptually uniform) মডেল। এর মানে হলো, Hue-তে সমান ডিগ্রি ব্যবধান সবসময় চোখে সমান রং পরিবর্তন বলে মনে হয় না। এছাড়া Lightness চ্যানেলটি মানুষের চোখের উজ্জ্বলতা উপলব্ধির সঙ্গে হুবহু মেলে না। এই কারণে বৈজ্ঞানিক বা অতি-নির্ভুল রংয়ের কাজে LAB বা LCH (Lightness, Chroma, Hue) বেশি ব্যবহৃত হয়, যা আরও সমান ভিত্তিক।

এই পৃষ্ঠায় LAB আউটপুটও দেখানো হয়। কিন্তু LAB বা CMYK থেকে রূপান্তরিত করে যদি কোনো রং sRGB গ্যামুটের বাইরে পড়ে, তাহলে সরঞ্জামটি নিকটতম প্রদর্শনযোগ্য রঙে সামঞ্জস্য করে। ফলে বারবার রূপান্তরে সামান্য স্থানান্তর ঘটতে পারে। সতর্কবার্তায় বলা হয়েছে: “If you enter a LAB or CMYK value that maps outside the visible RGB range, the tool adjusts it to the nearest displayable color. Converting that color back may introduce a slight shift.” পেশাদার মুদ্রণের জন্য CMYK-কে চূড়ান্ত হিসেবে ব্যবহার না করার পরামর্শও দেওয়া হয়েছে।

ব্যবহারিক ব্যবহার: CSS, ডিজাইন টুল, ডেটা ভিজুয়ালাইজেশন

আধুনিক ওয়েব ডেভেলপমেন্টে CSS hsl()hsla() ফাংশন ব্যাপকভাবে ব্যবহৃত হয়। উদাহরণ:

.button {
  background-color: hsl(243°, 75%, 59%);
  color: hsl(0°, 0%, 100%);
}

জাভাস্ক্রিপ্ট-এ HSL মান সহজেই পরিবর্তন করে গতিশীল থিম তৈরি করা যায় — কেবল Lightness ভেরিয়েবল বাড়িয়ে বা কমিয়ে। ডিজাইন টুল যেমন Figma, Adobe XD-তে HSL স্লাইডার থাকে, তাই ডেভেলপাররা ডিজাইন থেকে HSL কপি করে সরাসরি CSS-এ বসাতে পারেন।

ডেটা ভিজুয়ালাইজেশনে D3.js-এর মতো লাইব্রেরি ক্রমিক স্কেলের জন্য HSL-এর Lightness চ্যানেল ব্যবহার করে। তবে আরও নির্ভুল উপলব্ধির জন্য অনেক সময় LAB-ভিত্তিক d3.interpolateLab() ব্যবহার করা হয়।

প্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQ)

প্রশ্ন ১: আমি কীভাবে RGB ইনপুট দেব? উত্তর: তিনটি সংখ্যা ০–২৫৫-এর মধ্যে কমা বা স্পেস দিয়ে আলাদা করে লিখুন, যেমন 79, 70, 229। ভুল ফরম্যাটে লিখলে ত্রুটি বার্তা দেখানো হবে।

প্রশ্ন ২: HSL ইনপুট দিয়ে কি RGB-তে রূপান্তর করা যায়? উত্তর: হ্যাঁ। HSL ক্ষেত্র সম্পাদনা করলেই অন্য সব ফরম্যাট আপডেট হয়। HSL ইনপুটের ফরম্যাট: Hue ০–৩৬০, Saturation ও Lightness শতাংশ সহ, যেমন 243, 75%, 59%

প্রশ্ন ৩: CMYK আউটপুট কি প্রিন্টের জন্য নির্ভুল? উত্তর: না। এটি শুধু পর্দার জন্য আনুমানিক হিসাব। পেশাদার মুদ্রণের জন্য প্রিন্টার প্রোফাইল ও ক্যালিব্রেটেড সফটওয়্যার ব্যবহার করুন।

প্রশ্ন ৪: LAB মান দিলে রং বদলে যাচ্ছে কেন? উত্তর: LAB রং sRGB গ্যামুটের বাইরে থাকলে সরঞ্জামটি নিকটতম প্রদর্শনযোগ্য রঙে নিয়ে আসে। ফলে রিটার্ন রূপান্তরে সামান্য পরিবর্তন হতে পারে।

প্রশ্ন ৫: একই Lightness-এ কেন হলুদ আর নীল চোখে ভিন্ন লাগে? উত্তর: HSL-এ Lightness রৈখিক কিন্তু মানুষের চোখের উজ্জ্বলতা উপলব্ধি অ-রৈখিক। একে বলা হয় Bezold–Brücke shift বা আরও সাধারণভাবে উপলব্ধি অসমতা। LAB মডেল এই সমস্যার সমাধান করে।

প্রশ্ন ৬: এই পৃষ্ঠায় কি আমার ডেটা সংরক্ষিত হয়? উত্তর: না। সব রূপান্তর আপনার ব্রাউজারে হয় এবং কোনো কিছু সার্ভারে পাঠানো হয় না।