একটি টেক্সট টার্মিনাল (যেমন টিটি 1) থেকে এক্স 11 ভিত্তিক জিইউআইয়ের স্ক্রিনশট কীভাবে নেবেন?


11

আমি ব্যবহার করার চেষ্টা করেছি DISPLAY=:0 import -window root "$HOME/Pictures/screenshot.png"( importইমেজম্যাগিক স্যুটটির অংশ), তবে এটি কেবল একটি কালো স্ক্রিন প্রদর্শন করে।

আমি অ্যাপটি খোলার এবং এটি বিভিন্ন ভাষায় এর স্ক্রিনশট নেওয়ার সাথে সাথে স্বয়ংক্রিয় করতে চেয়েছিলাম এবং ভাষা পরিবর্তন করতে আমার লাইটডিএম পুনরায় চালু করতে হবে বলে আমি এটি করতে চাই। অতএব, tty চালান যাতে আপনার স্ক্রিপ্ট চলতে থাকে ...

উত্তর:


10

টার্মিনালে ASCII তে স্ক্রিনশট প্রদর্শন করতে বিদ্যমান উত্তরগুলি ছাড়াও:

xwd -root -display :0 | convert - jpg:- | jp2a - --colors

(প্রয়োজন x11-appsজন্য xwd, imagemagickজন্য convertএবং jp2a।)


ঠিক প্রাসঙ্গিক নয়, তবে দুর্দান্ত সংযোজন।
ইয়থার্থ আগরওয়াল

1
xwd -root -display :0 | convert - jpg:- > screenshot.jpg
গ্রেগন 3

2
আধুনিক চিত্রম্যাগিক সংস্করণগুলি প্রায়শই xwdযাদু সংখ্যাগুলি থেকে ফর্ম্যাটটি অনুমান করতে পারে না , সুতরাং স্পষ্টভাবে ইনপুট ফর্ম্যাটটি নির্দিষ্ট করা ভাল: xwd -root -display :0 | convert xwd:- jpg:- | jp2a - --colors
বাস

আমার জন্য xwd -name "$win_name" | convert xwd:- /tmp/"$win_name".pngwin_name=$(xwininfo -tree -root | grep 'The Window Name Im Looking For' | awk -F\" '{print $2}')
:,

6

সমাধানটি ব্যবহার করে এখানে দেওয়া হয়েছে xwd, যা প্রায় সব এক্সারগ প্রতিষ্ঠানে পাওয়া যায়:

 xwd -root -out screenshot.xwd

screenshot.xwdফাইল গিম্পের দিয়ে খোলা যেতে পারে:

আরও তথ্যের জন্য দেখুন http://www.x.org/wiki/UserDocamentation/GettingStarted/



5

শাটার ব্যবহার করে দেখুন

DISPLAY=:0 shutter -f -e -n -o "$HOME/Pictures/screenshot.png"

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

এছাড়াও আপনাকে স্ক্রিনশট নেওয়ার আগে ভিটিওয়াই সক্রিয় রয়েছে তা নিশ্চিত করতে হবে। সুতরাং উদাহরণস্বরূপ,

#!/bin/bash  
X :1 &  
export DISPLAY=:1  
sleep 10 # give time for X to start  
gedit &  
sleep 10 # give time for app to do something  
chvt 8  # ensure the X display is active  
shutter -f -e -n -o "$HOME/Pictures/screenshot.png" # screenshot  
killall xorg # terminate X

না, এখনও একটি কালো পর্দা দিচ্ছেন :(
ইয়থার্থ আগরওয়াল

আপনি যখন এটি করেন তখন আপনি এক্স সেশনে (কোনও মনিটরে থাকবেন)? আমি চেষ্টা করেছি এবং এটি বেশ ভাল কাজ করেছে। আপনাকে লগ ইন করতে হবে এবং সক্রিয় ভিটিওয়াইতে এক্স সেশন করতে হবে।
কোটায়ার

আমি চাই যে টিটিটিতে এটি চালু করতে একটি স্ক্রিপ্ট চালু করা হোক।
ইয়থার্থ আগরওয়াল

হ্যাঁ, তবে আপনি কি স্ক্রিন শট নেওয়ার আগে এক্স সেশনে স্যুইচ করেন? X :0 & sleep 50 && sudo chvt 6 && program & sleep 5 && screenshot(সম্পূর্ণ জাল স্ক্রিপ্ট লক্ষ্য করুন)।
কোটায়ার

এছাড়াও কেবল এটি নিশ্চিত করার জন্য যে আপনি ভিটি0 (বা কিছু) চান একই জিনিসটি কোনও পাঠ্য কনসোলের স্ক্রিন শট নয়। সুতরাং আপনার স্ক্রিপ্টটি কোনও টিটিওয়াই থেকে স্ক্রিন শট এক্স (ভিটিওয়াই) চেষ্টা করছে। এটা কি ঠিক?
কোটায়ার

0

একই কম্পিউটারে বসে এক্স সার্ভারটি চালানোর চেয়ে কোনও ভিন্ন ভার্চুয়াল টার্মিনাল থেকে এটি কাজ করে না।

এটি এখানে ব্যাখ্যা করা হয়েছে: http://www.karlrunge.com/x11vnc/faq.html#faq-linuxvc । উক্তি:

Q-108: ব্যবহারকারীদের সেশনগুলির মধ্যে 'ফাস্ট ইউজার স্যুইচিং' প্রয়োগ করতে আমি লিনাক্স ভার্চুয়াল টার্মিনালগুলি (ভিটি এর) ব্যবহার করি (উদাহরণস্বরূপ বেটিটি Ctrl-Alt-F7 এ রয়েছে, ববি Ctrl-Alt-F8 এ আছেন এবং সিডটি Ctrl-Alt এ রয়েছে -এফ 1: তারা তাদের সেশনগুলির মধ্যে স্যুইচ করার জন্য এই কী-স্ট্রোকগুলি ব্যবহার করে) সক্রিয় ভিটি?

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

এটিকে ঘিরে কাজ করার কোনও সহজ উপায় বলে মনে হয় না। এমনকি xwd (1) এই ক্ষেত্রে কাজ করে না (এটি চেষ্টা করে দেখুন) একটি নিম্ন স্তরে কিছু করা দরকার, এক্সফ্রি 86 / এক্সর্গ এক্স সার্ভারে বলুন। এছাড়াও, শ্যাডো ফ্রেমবফার ব্যবহার করে (ভিডিও ফ্রেমবফারের একটি অনুলিপি মূল স্মৃতিতে রাখা হয়) সমস্যাটি ঠিক করতে দেখা যায় না (সর্বশেষ চেক 2007))

যদি কেউ ওয়ার্কস্টেশনে বসে না থাকে এবং আপনি কেবলমাত্র আপনার এক্স সেশনের সাথে সম্পর্কিত একটিতে ভিটিটি দূরবর্তীভাবে স্যুইচ করতে চান (যাতে x11vnc এটি সঠিকভাবে পোল করতে পারে), কেউ chvt (1) কমান্ড ব্যবহার করতে পারে, যেমন "chvt 7" ভিটি # 7 এর জন্য।

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