উত্তর:
এটি আমার পক্ষে কাজ করে। সমস্ত অ্যাপ্লিকেশন এবং সমস্ত উইন্ডো পরিচালকদের সাথে কাজ নাও করতে পারে। pam
বিন্যাস, অন্তত করে ImageMagick দ্বারা সমর্থিত তাই আপনি এটি দিয়ে দেখতে পারেন display
এবং তা অন্যান্য ফরম্যাটের রূপান্তর যদি প্রয়োজন হতে convert
:
xprop -notype 32c _NET_WM_ICON |
perl -0777 -pe '@_=/\d+/g;
printf "P7\nWIDTH %d\nHEIGHT %d\nDEPTH 4\nMAXVAL 255\nTUPLTYPE RGB_ALPHA\nENDHDR\n", splice@_,0,2;
$_=pack "N*", @_;
s/(.)(...)/$2$1/gs' > icon.pam
(এবং আপনি যে উইন্ডোটি থেকে আইকনটি পেতে চান তাতে ক্লিক করুন, এক্সপ্রপের -id
বিকল্পটিও দেখুন)
ধারণাটি হল 32 বিট দশমিক পূর্ণসংখ্যার তালিকা হিসাবে সম্পত্তি পেতে xprop ব্যবহার করুন এবং এটিকে গ্রাফিক্স ফর্ম্যাটে রূপান্তর করতে পার্ল ব্যবহার করুন (সরলতার জন্য পাম এখানে নির্বাচিত হয়েছে যদিও আমাকে বাইটগুলি পুনরায় অর্ডার করতে হয়েছিল যেহেতু _NET_WM_ICON এআরজিবি রয়েছে যখন প্যাম আরজিবিএ)।
( প্যাম ফর্ম্যাট সম্পর্কে একটি নোট । এটি নেটপবিএম ফর্ম্যাট, নেটপবিএম একটি উপযোগযোগ্য ইউনিক্স চিত্রের ম্যানিপুলেশন টুলবক্স However তবে বিভিন্ন ইস্যুগুলির কারণে, বেশিরভাগ লাইসেন্সিং, নতুন নেটপিবিএম সংস্করণগুলি ডেবিয়ান দ্বারা প্যাকেজ নয় এবং ফলস্বরূপ উবুন্টুর মতো ডেরাইভেটিভস ভাল, যার মানে পাম রূপান্তর ইউটিলিটি অধিকাংশ উপস্থিত না আছে। অন্যান্য সিস্টেমের নতুন netpbm আছে, আপনি পাইপ আউটপুট উপরে পারেন pamrgbatopng
একটি PNG চিত্র জেনারেট করতে)
লিনাক্স ব্যবহার libwnck এটি করতে পারেন
#define WNCK_I_KNOW_THIS_IS_UNSTABLE = 1
#include <libwnck/libwnck.h>
int main(int argc,
char **argv) {
WnckScreen *screen;
gdk_init(&argc, &argv);
screen = wnck_screen_get_default();
wnck_screen_force_update(screen);
auto win = wnck_window_get(127926341); // 127926341 is window id, it can be get by linux cli xdotool or wmctrl or other many clis
GdkPixbuf *r = wnck_window_get_icon(win);
GError *err = NULL;
gdk_pixbuf_save(r, "/tmp/prpr.png", "png", &err, "quality", "100", NULL);
return 0;
}
আমি এই পৃষ্ঠা থেকে এটি পেতে