একটি আরজিবি মান দেওয়া হয়েছে, যেমন 168, 0, 255
, আমি কীভাবে রঙের টিন্টগুলি (এটি হালকা করব) এবং শেডগুলি (আরও গা it় করে তুলি) তৈরি করব?
একটি আরজিবি মান দেওয়া হয়েছে, যেমন 168, 0, 255
, আমি কীভাবে রঙের টিন্টগুলি (এটি হালকা করব) এবং শেডগুলি (আরও গা it় করে তুলি) তৈরি করব?
উত্তর:
শেডিং এবং টিংটিংয়ের বিভিন্ন বিকল্পের মধ্যে :
শেডগুলির জন্য, প্রতিটি উপাদানটিকে তার পূর্ববর্তী মানের 1/4, 1/2, 3/4, ইত্যাদি দ্বারা গুণান। ফ্যাক্টর যত ছোট হবে, শেড আরও গা shade় হবে।
টিন্টের জন্য, গণনা করুন (255 - পূর্ববর্তী মান), এটি 1/4, 1/2, 3/4, ইত্যাদি দ্বারা গুণিত করুন (বৃহত্তর ফ্যাক্টর, হালকা রঙটি), এবং এটি পূর্বের মানটিতে যোগ করুন (প্রতিটি ধরে নিচ্ছেন) । কম্পোমেন্টটি একটি 8-বিট পূর্ণসংখ্যা))
নোট করুন যে রঙের ম্যানিপুলেশনগুলি (যেমন টিন্ট এবং অন্যান্য শেড) লিনিয়ার আরজিবিতে করা উচিত । তবে, ডকুমেন্টগুলিতে নির্দিষ্ট হওয়া বা চিত্র এবং ভিডিওতে এনকোড হওয়া আরজিবি রঙগুলি লিনিয়ার আরজিবিতে হওয়ার সম্ভাবনা নেই , সেক্ষেত্রে আরজিবি রঙের প্রতিটি উপাদানগুলিতে তথাকথিত বিপরীত স্থানান্তর ফাংশন প্রয়োগ করা প্রয়োজন। আরজিবি রঙের জায়গার সাথে এই ফাংশনটি পরিবর্তিত হয়। উদাহরণস্বরূপ, জগৎ রঙ স্থান (যদি আরজিবি রঙ স্থান অজানা অধিকৃত করা যেতে পারে), এই ফাংশন মোটামুটিভাবে 2.2 একটি ক্ষমতা প্রতিটি জগৎ রঙ উপাদান (0 থেকে 1 মাধ্যমে ছোটো) উত্থাপন সমতুল্য। (মনে রাখবেন যে "লিনিয়ার আরজিবি" কোনও আরজিবি রঙের স্থান নয়))
"গামা সংশোধন" সম্পর্কে ভায়োলেট জিরাফের মন্তব্যও দেখুন।
আপনার রঙের মডেলের উপর নির্ভর করে আরও গা methods় (শেডযুক্ত) বা হালকা (রঙিন) রঙ তৈরি করার জন্য বিভিন্ন পদ্ধতি রয়েছে:
RGB
:
ছায়া গো:
newR = currentR * (1 - shade_factor)
newG = currentG * (1 - shade_factor)
newB = currentB * (1 - shade_factor)
রঙিন করতে:
newR = currentR + (255 - currentR) * tint_factor
newG = currentG + (255 - currentG) * tint_factor
newB = currentB + (255 - currentB) * tint_factor
আরও সাধারণভাবে, রঙের RGB(currentR,currentG,currentB)
সাথে একটি রঙের সাথে লেয়ার যুক্ত রঙ RGBA(aR,aG,aB,alpha)
হয়:
newR = currentR + (aR - currentR) * alpha
newG = currentG + (aG - currentG) * alpha
newB = currentB + (aB - currentB) * alpha
যেখানে (aR,aG,aB) = black = (0,0,0)
শেডিং এবং (aR,aG,aB) = white = (255,255,255)
টিন্টিংয়ের জন্য
HSV
বা HSB
:
Value
/ Brightness
বা বৃদ্ধিSaturation
Saturation
বা বাড়ান Value
/Brightness
HSL
:
Lightness
Lightness
এক রঙের মডেল থেকে অন্য রঙে রূপান্তর করার সূত্র রয়েছে। আপনার প্রাথমিক প্রশ্ন অনুসারে, আপনি যদি রয়েছেন এবং উদাহরণস্বরূপ ছায়া দেওয়ার জন্য মডেলটি RGB
ব্যবহার করতে চান HSV
, আপনি কেবল রূপান্তর করতে HSV
পারেন, শেডিং করতে এবং আবার রূপান্তর করতে পারেন RGB
। রূপান্তর করার সূত্রটি তুচ্ছ নয় তবে ইন্টারনেটে পাওয়া যাবে। আপনার ভাষার উপর নির্ভর করে এটি একটি মূল ফাংশন হিসাবেও উপলব্ধ হতে পারে:
RGB
বাস্তবায়নের জন্য সত্যই সহজ হওয়ার সুবিধা রয়েছে তবে:
HSV
বা HSB
জটিল ধরনের কারণ আপনার যা চান তা পেতে আপনার দুটি পরামিতি নিয়ে খেলতে হবে ( Saturation
& Value
/ Brightness
)HSL
আমার দৃষ্টিকোণ থেকে সেরা:
50%
একটি অবারিত হিউ মানে>50%
মানে হিউ হালকা (রঙিন)<50%
মানে হিউ গাer় (শেড)Lightness
অংশটি প্রতিস্থাপন করে )আমি বর্তমানে ক্যানভাস এবং পিক্সেল নিয়ে পরীক্ষা নিরীক্ষা করছি ... আমি এই যুক্তিটি আমার পক্ষে আরও ভাল কাজ করে দেখছি।
'tint' মান অফসেট যোগ করুন
var grey = (r + g + b) / 3;
var grey2 = (new_r + new_g + new_b) / 3;
var dr = grey - grey2 * 1;
var dg = grey - grey2 * 1
var db = grey - grey2 * 1;
tint_r = new_r + dr;
tint_g = new_g + dg;
tint_b = new_b _ db;
বা এরকম কিছু ...
rs = r * 0.25
,gs = g * 0.25
,bs = b * 0.25
(যে একটি প্রশংসনীয় অন্ধকার আলোছায়া হয়); আভা (RT, GT, BT):rt = r + (0.25 * (255 - r))
,gt = g + (0.25 * (255 - g))
,bt = b + (0.25 * (255 - b))
(যে একটি প্রশংসনীয় হালকা আভা যায়)। আমি এটি একটি শীতল অ্যারের অংশ হিসাবে করেছি যা প্রচুর রং তৈরি করে এবং এটি দুর্দান্ত কাজ করে। আশা করি এইটি কাজ করবে. ধন্যবাদ পিটার