উইন্ডোজ 7 কীভাবে টাস্কবার "রঙের হট ট্র্যাকিং" ব্যবহার করতে রঙটি গণনা করে?


20

এটি বেশ কিছু সময়ের জন্য আমাকে আগ্রহী করেছে।

বর্তমানে চলমান অ্যাপ্লিকেশনগুলির জন্য টাস্কবারের বোতামগুলিতে হট-ট্র্যাকিং হোভার হাইলাইট হিসাবে ব্যবহার করতে রঙ নির্ধারণ করার জন্য উইন্ডোজ A অ্যারো অ্যালগরিদম ব্যবহার করে এমন কি কেউ জানেন?

উইন্ডোজ 7 টাস্কবারের রংগুলি হোভার

এটি অবশ্যই অ্যাপ্লিকেশনটির আইকনের উপর ভিত্তি করে তৈরি হয়েছে, তবে এটি কোথা থেকে রঙের মান পাচ্ছে তার একটি নির্দিষ্ট প্যাটার্ন আমি দেখতে পাচ্ছি না।

এটি নিম্নলিখিত কোনওটি বলে মনে হচ্ছে না :

  1. পুরো আইকন থেকে গড় রঙের মান, অন্যথায় আপনি ক্রোমের মতো বহু রঙের আইকনগুলির সাথে সমস্ত সময় বাদামি হয়ে উঠবেন ।
  2. রঙটি চিত্রটিতে সর্বাধিক ব্যবহৃত হয়েছে, অন্যথায় আপনি এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও আইকনটির জন্য (বাম দিক থেকে 6th ষ্ঠ) হলুদ হয়ে উঠবেন। এছাড়াও, ক্রোম আইকনটি সমান পরিমাপে লাল, সবুজ এবং হলুদ ব্যবহার করেছে।
  3. আইকনের মধ্যে নির্দিষ্ট পিক্সেলের স্থানাঙ্কে অবস্থিত একটি রঙ আইকনের উপরের অংশটি চিহ্নিত করে - ক্রোম লাল, এবং নোটপ্যাড ++ (ডান থেকে দ্বিতীয়) হ'ল - আইকনের নীচে নির্দেশ করে।

আমি ux.stackoverflow.com এ এই প্রশ্নটি জিজ্ঞাসা করেছি এবং এটি অফ-টপিক হিসাবে বন্ধ হয়ে গেছে, তবে কেউ নিম্নলিখিতটির সাথে উত্তর দিয়েছেন:


এই এমএসডিএন ব্লগ নিবন্ধে রেমন্ড চেন বর্ণনা করেছেন :

কিছু লোক জিজ্ঞাসা করে যে এটি কীভাবে হয়েছে। এটি আসলে বিশেষ কিছু নয়। কোডটি কেবল আইকনের মূল রঙের সন্ধান করে। (এবং যেহেতু ভিজ্যুয়াল ডিজাইনাররা এই ধরণের জিনিসটির জন্য স্টিকারার তাই কালো, সাদা এবং ধূসর রঙের শেডগুলি এই গণনার উদ্দেশ্যে "রঙ" হিসাবে বিবেচিত হয় না))


তবে আমি সেই উত্তরটির সাথে সত্যই সন্তুষ্ট নই কারণ এটি "প্রাধান্যবান" বর্ণটি কীভাবে গণনা করা হয় তা ব্যাখ্যা করে না। অবশ্যই এসকিউএল ম্যানেজমেন্ট স্টুডিও আইকনটিতে, আমার চোখের কাছে প্রধানত রঙটি হলুদ। তবু হাইলাইট সবুজ। আমি বিশেষত জানতে চাই, অ্যালগরিদম কী।


An average colour value from the entire icon, otherwise you would get brown all the time.এটা বোঝা যায় না। উদাহরণস্বরূপ, স্কাইপ , কমান্ড-প্রম্পট , বা rent টরেন্ট আইকনগুলি গড় থেকে বাদামী হয়ে যাবে কীভাবে? ಠ_ ఠ (আমি যখন উইন্ডোজের রঙ-গণনা অ্যালগরিদমগুলিকে শেষবারের মতো উল্টেছিলাম তখন অবশেষে এটি প্রকাশ করতে বেশ কয়েক বছর সময় লেগেছে এবং মনোযোগ এবং বিভিন্ন ধরণের কাজ লেগেছে It দেখে মনে হচ্ছে আমি এই হ্যাকিং শেষ করতে পারি এক পর্যায়ে।)
সিনেটেক

@ সিনিটেক আপনি ঠিক বলেছেন - আমি কেবলমাত্র উপলব্ধ আইকনগুলির বিস্তৃত অ্যারে এবং একাধিক রঙ ধারণ করে এমন অনেকগুলি সম্পর্কে ভাবছিলাম। উদাহরণস্বরূপ ক্রোম আইকন বা আইআইএস আইকনটিতে যথাক্রমে লাল, সবুজ হলুদ এবং নীল এবং সবুজ, হলুদ এবং নীল রয়েছে। আমি অলসভাবে বুঝতে পেরেছিলাম এগুলি গড়পড়তা বাদামি রঙের হয়ে উঠবে তবে আপনি ঠিক বলেছেন যে এটি প্রচুর পরিমাণে বা কম-একরঙা আইকনের ক্ষেত্রে প্রযোজ্য নয়।
তারাতিমান

ONT পোস্ট হয়েছে একটি মন্তব্য যা এই Chrome এর সংস্করণ এবং সম্পর্কে একটি প্রশ্ন লিঙ্ক লিঙ্ক পৃষ্ঠা ক্রোম উৎস-কোড পরীক্ষা করে এটি ব্যাখ্যা করে। ব্যাখ্যা (কমপক্ষে এটির জন্য) হুবহু কোনও সাধারণ অ্যালগরিদম নয়।
Synetech

@ সিনিটেক সুন্দর সন্ধান করুন - এখন আমরা কোথাও পাচ্ছি। এটি আমি যা খুঁজছিলাম তার লাইনের সাথে রয়েছে। এখন, কেবল যদি আমরা উইন 7 উত্স কোডটি পেতে পারি ...;)
হেটেমান

আমি অনুমান করছি তবে, সমস্ত পিক্সেল ত্রিমাত্রিক জায়গাতে (প্রতিটি রঙের জন্য 1 মান)। তাদের উদাহরণস্বরূপ 10x10x10 এর গোষ্ঠী / কিউবে বিভক্ত করুন, সুতরাং রঙ আরজিবি (12,56,97) গ্রুপ / কিউবে আসবে (10-20,50-60,90-100)। এই গোষ্ঠীগুলির উপর পিক্সেলগুলি বিভক্ত করার সময় আপনি কোনটি বৃহত্তম সেটিকে লক্ষ্য রাখবেন। পরিশেষে আপনি সর্বাধিক পিক্সেল দিয়ে গ্রুপকে গড়ের মাধ্যমে প্রধান রঙ নির্ধারণ করেন। গোষ্ঠীর আকার হ'ল কর্মক্ষমতা / নির্ভুলতার একটি বাণিজ্য।
mxt3

উত্তর:


14

ঠিক 35 মিনিটের মধ্যে উইন্ডোজ 7 ডেস্কটপে স্বাগতম থেকে :

এটি ২ 27 টি বিভিন্ন বালতি জুড়ে একটি সাধারণ রঙের হিস্টোগ্রাম, এবং আমরা কৃষ্ণাঙ্গ, সাদা, আলফা চ্যানেল এবং গ্রেগুলি বের করি এবং সর্বাধিক প্রভাবশালী আরজিবিভি [সিক] মান ব্যবহার করি ...

আমি মোটামুটি নিশ্চিত যে স্পিকার বলতে "আরজিবি" বলতে চাইছিল, যেহেতু "আরজিবিভি" কোনও জিনিস বলে মনে হচ্ছে না। "নরমালাইজড" অংশটি আসলেই কিছু যায় আসে না; এটি কার্যকরভাবে প্রতিটি "বালতিতে" কত পিক্সেল পড়ে তা গণনা করছে। প্রতিটি পিক্সেল, অতএব, তার প্রতিটি চ্যানেলের মানের অবস্থানের ভিত্তিতে 27 টি বালতিতে (ত্রিমাত্রিক অ্যারে সাজানো; 27 এর কিউব মূল 3 টি) রাখা হয়। উইন্ডোজ প্রতিটি রঙের চ্যানেলের জন্য নির্ধারণ করে যে রঙের তীব্রতা নীচে, মাঝখানে বা রেঞ্জের শীর্ষ অংশে রয়েছে কিনা। এটি প্রদর্শিত হবে যে পরিসীমাগুলি প্রায় 0-60, 60-200 এবং 200-255। সম্পূর্ণ স্বচ্ছ পিক্সেল মোটেও অন্তর্ভুক্ত করা হয় না।

উইন্ডোজ তখন আবিষ্কার করে যে বালতিটি সর্বাধিক পিক্সেল রয়েছে, কালো, সাদা এবং ধূসর রঙগুলিকে উপেক্ষা করে (বালতি যেখানে তিনটি চ্যানেলই তৃতীয় শ্রেণির একই তৃতীয় ছিল)। এটি এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও আইকনটি ব্যাখ্যা করে - আমাদের কাছে যা হলুদ দেখা যায় তার বেশিরভাগ অংশ আসলে "সাদা" বালতিতে ফেলে দেওয়া হয় এবং উপেক্ষা করা হয়।

যদি কোনও গ্রহণযোগ্য বালতিতে কোনও পিক্সেল না থাকে তবে সিস্টেম রঙের স্কিম নির্বিশেষে প্রোগ্রামটি হালকা নীল রঙের ওভারলে পায়। (কমান্ড প্রম্পটটি দেখুন)) যদি কোনও প্রোগ্রামের কোনও আইকন না থাকে তবে এটি একটি সাদা / স্বচ্ছ ওভারলে পায় যদিও উইন্ডোজ ডিফল্ট আইকনটি অন্যথায় নীল বা সবুজ রঙের ওভারলে তৈরি করে।

একাধিক প্রোগ্রাম একই হাইলাইট রঙ হওয়া থেকে থামানোর কিছুই নেই। উদাহরণস্বরূপ, নতুনতম ক্রোম আইকনটি উইন্ডোজ 8 এর এক্সপ্লোরারের মতোই হলুদ হয়ে যায়।

যদি বন্ধনগুলি থাকে তবে একটি পূর্বনির্ধারিত আদেশ রয়েছে যা চিত্রের রঙের ক্রমের উপর নির্ভর করে না। এটি সম্ভবত সর্বাধিক যেভাবে পাওয়া যায় তার ফলস্বরূপ - আগে যাচাই করা বালতিগুলি পরে যদি একটি সম্পর্কযুক্ত হয় তবে সর্বোচ্চ হিসাবে চলতে থাকবে। এটি প্রদর্শিত হয় যে হলুদ চেক করা প্রথম বালতিগুলির মধ্যে একটি।

বিজয়ী বালতিটি আবিষ্কার হয়ে গেলে, হাইলাইট রঙটি বালতির পরিসরের মাঝখানে কোথাও কোনও রঙে সেট হয়ে গেছে বলে মনে হচ্ছে।

পরীক্ষার কেসগুলি (প্রদত্ত নম্বরগুলি আরজিবি মান হয়):

উজ্জ্বল হলুদ(255, 247, 209) → ডিফল্ট হাইলাইট
লাল 47(47, 0, 0) → ডিফল্ট হাইলাইট
লাল 60(60, 0, 0) → গা red় লাল
লাল 66(66, 0, 0) → গা red় লাল
কালচে লাল(165, 0, 0) → লাল
ধূসর 128( 128, 128, 128) → ডিফল্ট হাইলাইট
halfs(0, 148, 255) এবং (255, 0, 0) → লাল
আরও অর্ধেক(0, 255, 0) এবং (255, 216, 0) একই ক্ষেত্রের সাথে → হলুদ
একই বিপরীততবে ফ্লিপড → হলুদ
সাদা লাল 180(255, 180, 180) → হালকা লাল
সাদা লাল 210(255, 210, 210) →
ত্রৈমাসিকএকই অঞ্চলে খাঁটি নীল, খাঁটি হলুদ, খাঁটি লাল এবং খাঁটি সবুজ → হলুদ
সাদা লাল 61(255, 61, 61) → লাল
লাল 82(82, 0, 0) → গা .় লাল


এটি এখনও সবচেয়ে সুস্বাদু উত্তর ish ধন্যবাদ. এটি আমার যে সমস্ত সমস্যায় পড়েছিল তা ব্যাখ্যা করে এবং তীব্র গভীরতায়ও যায়। সাবাস।
তারাতিমান

@ বেন এনআই জানেন যে এটি বোবা প্রশ্নের মতো দেখাচ্ছে তবে এখনও। কেন 27 বালতি? আমি জানি এটি 3 ^ 3, এবং আমি অনুমান করি যে প্রথম 3 টি হ'ল আর, জি এবং বি রঙ, তবে দ্বিতীয় 3 টি কী দাঁড়ায়?
এক্সেল

@TheExiestManinJamaica আমি মনে করি এটি কেবল স্বেচ্ছাচারী; মাইক্রোসফ্ট 3 ^ 3 এর কমনীয়তা পছন্দ করেছে। খুব কম সম্ভাব্য রঙ (3 ^ 2 হ'ল 9) এবং প্রচুর সম্ভাব্য রঙের (3 ^ 4 হচ্ছে 81) এর মধ্যে এটি একটি দুর্দান্ত ভারসাম্য।
বেন এন

0

আমার অনুমানটি হ'ল প্রতিটি রঙের জন্য শীর্ষ থেকে শুরু করে আপনি আর, জি এবং বি মান পাবেন এবং সেগুলি থেকে আপনি তিনটির মধ্যে সর্বাধিক এবং সর্বনিম্ন নেন এবং তাদের তুলনা করেন। সর্বাধিক এবং নিম্নতমের মধ্যে সর্বাধিক ব্যবধানের সাথে রঙটি চিত্রের উজ্জ্বলতম রঙ হবে be এখন, বলুন, ক্রোম আইকনটির ক্ষেত্রে, সবচেয়ে বড় ব্যবধানের জন্য কয়েকটি রঙ বাঁধা থাকতে পারে, তবে লালটি শীর্ষে রয়েছে, তাই এটির আগে এটির মুখোমুখি হয়েছিল, এবং এইভাবেই এই চিত্রটির প্রাধান্য রয়েছে। (আমি মনে করি আপনি নিজের আইকন ডিজাইন করে এটি পরীক্ষা করতে পারেন, যেমন Chrome লোগোকে 120 ডিগ্রি ঘোরান এবং দেখুন যে পরিবর্তে সবুজ বা হলুদ আধিপত্য রয়েছে))


0

যেভাবে আমি এটি বুঝতে পারি - রঙ নির্ধারণের সময় ওএস কয়েকটি বিষয়গুলির চেয়ে বেশি বিবেচনা করে account

  1. এই অ্যাপ্লিকেশনটিতে ওএস দ্বারা ইতিমধ্যে কোনও রঙ বরাদ্দ করা হয়েছে? যদি তা হয় তবে 7 এ যান।
  2. এই রঙটি কি প্রোগ্রাম কোডে সংজ্ঞায়িত করা হয়েছে? যদি তা হয় তবে প্রোগ্রাম থেকে পূর্বনির্ধারিত রঙটি ব্যবহার করুন। (হ্যাঁ, উইন্ডোজ প্রোগ্রামগুলির জন্য একটি পরিবর্তনশীল সেটিং রয়েছে যা এটি নিয়ন্ত্রণ করে, না, আমি সঠিক ভেরিয়েবলের নাম জানি না)
  3. যদি 1 = মিথ্যা (অর্থ কোনও পূর্বনির্ধারিত রঙ নয়), ব্যবহৃত আইকনটির প্রভাবশালী রঙ নির্ধারণ করুন। (এর জন্য, কালো, সাদা এবং ধূসর রঙগুলি উপেক্ষা করা হবে)
  4. 2 যদি ব্যবহৃত একটি একক রঙ নির্ধারণ করতে না পারে এবং ব্যবহৃত অন্যান্য রঙের চেয়ে বেশি প্রভাবশালী হয় তবে আইকনের গড় আরবিজি মান নির্ধারণ করুন। যদি কোনও সংজ্ঞায়িত রঙ অর্জন করা হয় তবে এটি ব্যবহার করুন। এই উদ্দেশ্যে, সাদা, কালো, ধূসর এবং বাদামী রঙগুলি পুরোপুরি উপেক্ষা করা হবে।
  5. যদি কালো তালিকাভুক্ত রঙগুলির মধ্যে একটির (কালো সাদা বা ধূসর) 3 টি ফলাফল আসে তবে এলোমেলোভাবে এমন একটি রঙ নির্ধারণ করুন যা ব্ল্যাকলিস্টের রঙগুলিকে লঙ্ঘন না করে গড় আরবিজি মানটিকে সবচেয়ে ঘনিষ্ঠভাবে উপস্থাপন করে।
  6. রঙের সফল কার্যভার সম্পূর্ণ হওয়ার পরে, দ্রুত রঙ অ্যাসাইনমেন্টের জন্য রেজিস্টরিতে রঙের তথ্য সংরক্ষণ করুন।
  7. যদি নির্ধারিত রঙটি বর্তমানে অন্য কোনও অ্যাপ্লিকেশনের দ্বারা ইতিমধ্যে ব্যবহৃত কোনও রঙের সাথে মেলে তবে নির্ধারিত রঙের 15% এর মধ্যে এলোমেলো রঙের রঙের মাধ্যমে অফসেট করুন।
  8. রঙ প্রদর্শন।

এটি খুব ভাল হতে পারে এবং বেশিরভাগ অনুমান, তবে এটি আপনাকে রঙ বোঝার জন্য ওএস খুব ভালভাবে ব্যবহার করার পদ্ধতিটি বোঝার একটি সহজ উপায় দেয়। এটি এটিও ব্যাখ্যা করে যে কীভাবে একটি পূর্বনির্ধারিত রঙ ছাড়াই একটি প্রোগ্রাম এবং সমান পরিমাণে রঙ ব্যবহার করে একটি আইকনকে সাদা / বাদামী / কালো বরাদ্দ করা হয় না এবং কেন কালো, সাদা এবং ধূসরকে কখনই বরাদ্দ করা হয় না। এছাড়াও আপনার লক্ষণীয় হওয়া উচিত, যে প্রোগ্রামগুলিতে আইকন নেই (সেখানে এখনও কিছু রয়েছে) একটি স্বচ্ছ হট-ট্র্যাকিং রঙ দেখায়, যা hুকে যাওয়ার পরে কেবল আইকনটিকে 'উজ্জ্বল' করে তোলে।


অ্যাপ্লিকেশনগুলির নিজস্ব রঙ নির্ধারণ করার কোনও উপায় নেই। একই সাথে দুটি প্রোগ্রামের বিরুদ্ধে কোনও নিয়ম বলে মনে হয় না। আকর্ষণীয় ধারণা, যদিও।
বেন এন

-2

এখানে কিছু ভিবি কোড রয়েছে যা একটি চিত্রের আরজিবি রঙগুলিকে গড়ে তোলে:

Function AverageRGB(ByRef P As PictureBox) As Long

Dim Count As Long
Dim Red As Long
Dim Green As Long
Dim Blue As Long
Dim Hexed As String
Dim X As Long
Dim Y As Long
Count = 0


For X = 0 To P.Width Step P.Width \ 32


    For Y = 0 To P.Height Step P.Height \ 32
        Hexed = Right("00000" & Hex(P.Point(X, Y)), 6)
        Red = Red + CLng("&h" & Right(Hexed, 2))
        Green = Green + CLng("&h" & Mid(Hexed, 3, 2))
        Blue = Blue + CLng("&h" & Left(Hexed, 2))
        Count = Count + 1
    Next

Next

AverageRGB = RGB(Red \ Count, Green \ Count, Blue \ Count)
End Function

এটি কোনও ওএসে ব্যবহারের জন্য সত্যিই অনুকূলিত নয়, তবে এটি আপনাকে একটি প্রাথমিক ধারণা দেয় - উত্স


3
তিনি ইতিমধ্যে ব্যাখ্যা করেছেন যে এটি কোনও সাধারণ / বেসিক গড় নয়। কোডের মাধ্যমে ক্রোম আইকনটি চালান এবং আপনি এটি নিজের জন্য দেখতে পাবেন।
সিনেটেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.