जवाबों:
यह मेरे लिए काम करता है। सभी अनुप्रयोगों और सभी विंडो प्रबंधकों के साथ काम नहीं कर सकते। 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
(और उस विंडो पर क्लिक करें जिसे आप आइकन से प्राप्त करना चाहते हैं, xprop का -id
विकल्प भी देखें )
संपत्ति को 32 बिट दशमलव पूर्णांकों की सूची के रूप में प्राप्त करने के लिए xprop का उपयोग करने और पर्ल को एक ग्राफिक्स प्रारूप में बदलने के लिए विचार करने का विचार है (पीएएम को सादगी के लिए यहां चुना गया हालांकि मुझे बाइट्स को फिर से व्यवस्थित करना पड़ा क्योंकि _NET_WM_RON एआरएमजी है जबकि पीएएम आरजीबीए है।
( पीएएम प्रारूप के बारे में एक नोट । यह एक नेटपीबीएम प्रारूप है, नेटपब्लम एक आदरणीय यूनिक्स छवि हेरफेर टूलबॉक्स है। हालांकि, विभिन्न मुद्दों के कारण, ज्यादातर लाइसेंस देने वाले, नए नेटपबम संस्करण डेबियन के लिए पैकेज नहीं हैं और परिणामस्वरूप ओबंटु जैसे इसके डेरिवेटिव। अच्छी तरह से, जिसका अर्थ है कि अधिकांश pam रूपांतरण उपयोगिताओं में मौजूद नहीं हैं। अन्य प्रणालियों पर जो नए netpbm हैं, आप pamrgbatopng
png छवि उत्पन्न करने के लिए ऊपर दिए गए आउटपुट को पाइप कर सकते हैं )
linux 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;
}
मैं इसे इस पृष्ठ से प्राप्त करता हूं