কেন চলমান অ্যাপ্লিকেশনটিতে জিনোম প্রতীকী আইকনগুলি গাer় প্রদর্শিত হয়?


10

আমি একটি অ্যাপ্লিকেশন তৈরি করছি যা ডিফল্ট থিম থেকে প্রতীকী আইকন ব্যবহার করে।

তবে, কয়েকটি আইকন রয়েছে যা আমার প্রয়োজন যা ডিফল্ট থিমের দ্বারা প্রতিনিধিত্ব করা যায় না, তাই আমি নিজের নিজস্ব তৈরি করছি।

আমি যা করেছি তা হ'ল কেবলমাত্র /usr/share/icons/gnome/scalable/actions/আমার অ্যাপ্লিকেশনটির উত্স ট্রিতে স্থানীয়ভাবে কয়েকটি অনুলিপি করা হয়েছিল যা ভিত্তি হিসাবে কাজ করতে পারে এবং সেগুলি সম্পাদনা শুরু করে।

এ পর্যন্ত সব ঠিকই. তবে আমি নিম্নলিখিতটি লক্ষ্য করেছি: মূল .svg ফাইলটি দেখার সময় সমস্ত প্রতীকী আইকনগুলি হালকা ধূসর বর্ণের হয়, তবে যখন সেগুলিকে একটি উইজেটে রাখা হয়, তখন তারা আরও গা .় হয়।

/usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svgডিফল্ট থিম থেকে আইকনটি ব্যবহার করে এখানে একটি উদাহরণ দেওয়া হয়েছে:

  • ইনসক্যাপের সাহায্যে মূলটি খোলার সময় দেখতে এটি দেখতে কেমন:

ইনকস্কেপে দেখুন-রিফ্রেশ-প্রতীকী

  • এবং চলমান অ্যাপ্লিকেশনটির একটি সরঞ্জামদণ্ডে এটি দেখতে কেমন তা এখানে দেখুন:

রানটাইম এ দেখুন-রিফ্রেশ-প্রতীকী

রানটাইমের সময় আইকনটি আরও গা dark় হয়ে উঠছে Notice এটি উভয়ই অ্যাম্বিয়েন্স এবং তেজস্ক্রিয় থিমের সাথে ঘটে।

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

সুতরাং ডিফল্ট প্রতীকী আইকনগুলি অন্ধকারের কারণ কী এবং কীভাবে এটি আমার কাস্টম আইকনগুলির জন্য প্রয়োগ করা উচিত?


আপনি ঠিক কীভাবে অ্যাপ্লিকেশনটিতে লোড করছেন?
dobey

গ্ল্যাডের সাথে, 'আইকন নাম থেকে লোড করুন' সেটিংসটি ব্যবহার করে একটি সরঞ্জামদণ্ডে বোতামে।
ডেভিড প্লানেলা

তারপরে সম্ভবত সুনিশ্চিত উত্তরটি হ'ল এটি আপনার কাস্টম আইকনটি মোটেই লোড করছে না, তবে স্ট্যাকের আইকন থিমের একটি, যার একটি মিল আছে নাম (বা ফ্যালব্যাক নাম)।
dobey

উত্তর:


15
  • প্রতীকী আইকনগুলি একটি ক্রোমা-কিড রঙে তৈরি করা হয়েছে, পূর্ণ ধূচ্ছতার সাথে ধূসর #bebebeff) এরপরে (GTK3) বা (GTK2) fg_colorথিম দ্বারা সংজ্ঞায়িত মানের ভিত্তিতে এগুলি রঙিন করা যেতে পারে ; বা CSS (GTK3) এ সংজ্ঞায়িত onsettings.inigtkrcfg_color
    • উদাহরণস্বরূপ, অ্যাম্বিয়েন্সের জন্য অগ্রভাগের রঙ ( fg_color) গা dark় ধূসর ( #4c4c4c) এ সেট করা হয়েছে /usr/share/themes/Ambiance/gtk-3.0/settings.ini, এজন্য প্রতীকী আইকনগুলি আরও গা appear় দেখা দেয়।
  • কাস্টম প্রতীকী আইকনগুলি দেখতে একইরকম হতে, আপনাকে অবশ্যই স্ট্রোকটি সরিয়ে ফেলতে হবে এবং কেবল সেট করা আরজিবিএ মান পূরণ করতে হবে #bebebeff; অন্যথায়, স্ট্রোক সর্বদা সেট হিসাবে উপস্থিত হবে (যেমন ধূসর বা যাই হোক না কেন বর্ণ)।

    • ইনস্কেপে কেবলমাত্র বস্তুটি নির্বাচন করুন, ফিল এবং স্ট্রোক খুলুন এবং "স্ট্রোক পেইন্ট" এর নীচে নো পেইন্ট (এক্স) আইকনটি ক্লিক করুন :

    এখানে চিত্র বর্ণনা লিখুন

  • এটি আমাদেরকে একটি দুর্দান্ত এবং সম-দর্শনীয় "মাইআরফ্রেশ" প্রতীকী আইকন দেয়:

    এখানে চিত্র বর্ণনা লিখুন


একজন ব্যবহারকারী ইঙ্গিত দিয়েছিলেন যে ডিফল্ট জিনোম প্রতীকী আইকনের পরিবর্তে একটি ভিন্ন, গাer় আইকনটি খোলা হচ্ছে; এই স্ট্রেসটি দেখায় যে, দৃ as়তা ভুল:

এখানে চিত্র বর্ণনা লিখুন


চমৎকার উত্তরের জন্য ধন্যবাদ! তবে, একটি জিনিস এখনও আমি পুরোপুরি বুঝতে পারি না: কাস্টম সিম্বলিক আইকনগুলিতে কেন স্ট্রোক হতে পারে না, এমনকি যদি পূর্ণ হয় তবে #bebebeff?
ডেভিড প্লানেলা

আমি মনে করি যে এটি কীভাবে জিনোম প্রতীকী এসভিজিগুলিকে রেন্ডার করে (রাস্টারাইজ করে), fg_color(এটি libRSVG ব্যবহার করে ) এর উপর ভিত্তি করে ; ইঞ্জিন স্পষ্টতই পূরণ করে এবং স্ট্রোকের মধ্যে পার্থক্য করে এবং fg_colorস্ট্রোকটি যেমন রেখে যায় তখন কেবল ফিলকে প্রয়োগ করার জন্য কোড করা হয়। এটি এমনটি করতে পারে কারণ এসভিজি হ'ল একটি ভেক্টরাইজড (প্যারামিটারাইজড) ফর্ম্যাট, যখন সাধারণ বিটম্যাপড আইকনগুলির জন্য এটি সমস্ত মাত্র পিক্সেল :)
ইশ

3

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

ভালা কোড উদাহরণ:

//get the icon theme and lookup the icon we want by name, here at a size of 64px
var info = Gtk.IconTheme.get_default ().lookup_icon ("view-refresh-symbolic", 64, 0);

//now load the icon as a symbolic with a color set in the brackets as RGBA, here as plain red
var pixbuf = info.load_symbolic ({1, 0, 0, 1});

//finally we just put in a GtkImage to render it
var image_widget = new Gtk.Image.from_pixbuf (pixbuf);

প্রকৃতপক্ষে, বর্তমান থিমের উপযুক্ত অনুসারে পুনরুদ্ধার করা প্রতীকী আইকনগুলির প্রায় মূল উদ্দেশ্য (অন্যটি সহজ এবং আরও সুগঠিত হওয়া, যা এটি প্রচার করে)
আন্ডারস্কোর_২
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.