قدرت و کارایی عالی خط فرمان در گنو/لینوکس (6)

بازهم معرفی یک برنامهء خط فرمان.
نام این برنامه xwd هست. فکر میکنم برخلاف یکسری برنامه هایی که قبلا مطرح شدن، این برنامه در اکثر توزیعها باید موجود و نصب باشه بطور پیشفرض.
با این برنامه میشه اسکرین شات گرفت.

Xwd is an X Window System window dumping utility. Xwd allows X users to store window images in a specially formatted dump file. This file can then be read by various other X utilities for redisplay, printing, editing, formatting, archiving, image processing, etc. The target window is selected by clicking the pointer in the desired window.

یک برنامهء مکمل دیگه هم هست که تصاویری رو با فرمتی که برنامهء xwd ایجاد میکنه، میتونه نمایش بده و ما در مثالهامون از این برنامه کمک میگیریم برای تست سریعتر. اسم این برنامهء نمایش دهنده، xwud هست.

خب سریع میریم سر مثالهای عملی:

xwd | xwud

این فرمان رو وقتی صادر کنید، برنامه منتظر میمونه تا شما روی بخشی از صفحه کلیک کنید؛ وقتی کلیک کردید تصویر اون پنجره ای که روش کلیک کردید گرفته میشه (حتی پنل شما یک پنجره به حساب میاد در این حالت). در حالت پیشفرض xwd خروجی خودش رو به stdout یا خروجی استاندارد که معمولا ترمینال هست میفرسته. مشخصه که شما روی ترمینال چیزی جز مقدار زیادی کاراکترهای عجیب و غریب که نتیجهء خروجی باینری هست نمی بینید.
پس ما در این خط فرمان این خروجی رو به برنامهء xwud پاس کردیم و این برنامه تصویر رو به شما نشون میده. برای خروج از این برنامه باید روی تصویر نمایش داده شده کلیک کنید. یا میتونید کلید q یا Ctrl+c رو بزنید و یا پنجره رو با کلیک روی دکمهء مربوطه ببندید. پس از بسته شدن این پنجره، خط فرمان تازه برمیگرده.
البته نمایش یک تصویر به اینصورت برای ما فایدهء چندانی نداره (چون جایی ذخیره نمیشه) و بیشتر به منظور تست و نمایش کاربردهای مختلف xwd با تنظیمات مختلف، اینجا بکار میبریمش.

xwd -frame | xwud

این فرمان فرقش با قبلی اینه که تصویر فریم پنجره رو هم میگیره (فریم چهارچوب دور یک پنجره هست که مثلا دکمهء X یا همون Close روش هست).

xwd -name 'StarDict' | xwud

این فرمان از پنجره ای با عنوان (Title) مشخص که StarDict هست (یک دیکشنری بسیار خوب برای لینوکس که دیتابیس فارسی خوبی هم براش تهیه شده) تصویر گرفته و نمایش میده.
شما عنوان هر پنجره ای رو که بدید از همون تصویر گرفته میشه. و پنجره باید مریی/حاضر باشه.

xwd -name 'StarDict' | xwud -scale

این فرمان هم تنها فرقش اینه که آپشن -scale رو به xwud دادیم که باعث میشه بعد از نمایش تصویر بشه سایز پنجره رو به دلخواه تغییر داد و تصویر درون اون به همون شکل کشیده یا منقبض بشه.

xwd -out ~/Desktop/out.xwd

با پارامتر آپشن -out به xwd میگیم که تصویر رو در فایلی به نام out.xwd، روی دسکتاپ کاربریمون ذخیره کنه.
برای نمایش این تصویر توسط xwud هم به این صورت عمل میکنیم:

xwud -in ~/Desktop/out.xwd

حتما میدونید که میشه دو فرمان رو پشت سرهم قرار داد، تا تصویر گرفته و ذخیره شده و نتیجه رو بلافاصله مشاهده هم بکنیم:

xwd -out ~/Desktop/out.xwd; xwud -in ~/Desktop/out.xwd

خب اما این فرمتی که تصاویر ما درش ذخیره میشه، توسط هر برنامه ای قابل خواندن و استفاده نیست. میتونیم با استفاده از هر برنامهء ویرایش و تبدیلی که این فرمت رو پشتیبانی میکنه، تصویر رو به فرمت متداول و ضمنا فشرده ای در بیاریم. توجه کنید که فرمت xwd فشرده شده نیست و مثل تصاویر BMP، حجم زیادی داره.

ما اینجا بسادگی از برنامهء convert استفاده میکنیم، که جزیی از پکیج ImageMagick هست. این پکیج شامل یکسری ابزار و برنامه برای کارهای ویرایشی و عملیات جالب دیگری روی تصاویر هست. بنده با این برنامه چندان کار نکردم و منوال برنامه های مختلف این پکیج رو مطالعه نکردم. بهرحال برای کار ما یک خط فرمان ساده کفایت میکنه. احتمالا اگر بعدها بیشتر راجع به این برنامه ها مطالعه کردم و درجش مطالبشون رو در این تاپیک مفید دیدم، سعی میکنم این کار رو انجام بدم.

xwd -out ~/Desktop/out.xwd; convert ~/Desktop/out.xwd ~/Desktop/out.png; rm -f ~/Desktop/out.xwd; display ~/Desktop/out.png

تصویری از پنجرهء کلیک شده گرفته میشه؛ تصویر به فرمت png تبدیل میشه؛ فایل حجیم و بی استفادهء xwd که در مرحلهء اول ایجاد شد پاک میشه؛ تصویر توسط برنامهء display (اینهم جزیی از پکیج ImageMagick هست) نمایش داده میشه.
راستی ظاهرا با کلیک روی این تصویر نمایش داده شده، میتونید ویرایشهایی رو روش اعمال کنید. (البته دیگه هیچ ربطی به این تاپیک که دربارهء خط فرمان و برنامه های خط فرمان هست نداره).

xwd -root | xwud

ببخشید، فراموش کرده بودم که فرمان اسکرین شات (از کل صفحهء نمایش) رو بگم؛ این همون فرمان هست.

جالب اینکه حتی برنامهء display هم میتونه ورودی خودش رو از stdin (ورودی استاندارد ترمینال) بگیره:

xwd -root | display

البته خود پکیج ImageMagick هم برنامه ای به نام import داره که کار اسکرین شات گرفتن رو برای شما انجام میده.
بهرحال بسته به این هست که این پکیج روی سیستم شما نصب شده باشه. اگر خواستید منوالش رو مطالعه بفرمایید. احتمالا اگر نصب باشه، راحتتر و سریعتر بتونید کارتون رو با اون راه بندازید؛ چون میتونید مستقیما و در یک مرحله بعضی کارهای ویرایشی لازم رو انجام بدید و تصویر مستقیما با فرمت مورد نظر شما ذخیره بشه.

تا مجالی دیگر بدرود.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>