jp2a(1) USER COMMANDS jp2a(1)

jp2a - تبدیل تصاویر JPEG، PNG و WebP به اسکی (ASCII)

jp2a [ options ] [ filename(s) | URL(s) ]

دستور jp2a تصاویر JPEG، PNG و WebP را به نویسه‌های ASCII تبدیل می‌کند. می‌توانید ترکیبی از فایل‌ها و URLها را مشخص کنید.

-
خواندن تصویر JPEG، PNG و WebP از ورودی استاندارد
اگر نمی‌خواهید مدام با --invert سر و کار داشته باشید، کافی است به جای آن از این گزینه‌ها استفاده کنید. اگر از نویسه‌های سفید روی نمایشگر تیره استفاده می‌کنید، از --background=dark استفاده کنید، و برعکس.
قراردادن تصویر خروجی در یک کادر (حاشیه)
استفاده از نویسه‌های داده‌شده هنگام تولید تصویر خروجی ASCII. پیش‌فرض " ...',;:clodxkO0KXNWM" است.
استفاده از رنگ واقعی (truecolor) (یا در صورت عدم پشتیبانی از truecolor، رنگ ANSI) برای خروجی متنی، و رنگ CSS برای خروجی HTML.
استفاده از یک عمق رنگ (color-depth) مشخص برای خروجی ترمینال. مقادیر معتبر عبارتند از: 4 (برای ANSI)، 8 (برای پالت ۲۵۶ رنگ) و 24 (برای truecolor یا رنگ ۲۴ بیتی).
چاپ اطلاعات اشکال‌زدایی هنگام استفاده از libcurl برای بارگیری تصاویر از اینترنت.
استفاده از بزرگ‌ترین ابعادی که تصویر را در صفحه نمایش ترمینال شما جا دهد.
استفاده از ارتفاع صفحه نمایش ترمینال و محاسبه عرض بر اساس نسبت تصویر (aspect ratio).
استفاده از عرض صفحه نمایش ترمینال و محاسبه ارتفاع بر اساس نسبت تصویر.
استفاده همزمان از عرض و ارتفاع صفحه نمایش ترمینال.
قرار دادن تصویر در مرکز ترمینال.
هنگامی که همراه با --html و --color استفاده شود، رنگ پس‌زمینه هر نویسه خروجی را رنگ‌آمیزی می‌کند. برای نمونه، اگر می‌خواهید از خروجی پرشده روی یک پس‌زمینه روشن استفاده کنید، این دستور را اجرا نمایید:

jp2a --color --html --html-fill --background=light somefile.jpg --output=dark.html

برای انجام همین کار روی یک پس‌زمینه تیره:

jp2a --color --html --html-fill --background=dark somefile.jpg --output=light.html

حالت پیش‌فرض غیرفعال بودن fill است.

وارونه‌سازی افقی تصویر خروجی
وارونه‌سازی عمودی تصویر خروجی
تنظیم ارتفاع خروجی. اگر فقط --height مشخص شده باشد، عرض خروجی بر اساس نسبت ابعاد تصویر منبع محاسبه خواهد شد.
نمایش یک متن راهنمای کوتاه
تبدیل تصویر به مقیاس خاکستری (grayscale) هنگام استفاده از --html یا --colors.
تولید خروجی ASCII در استاندارد دقیق XHTML 1.0. (برای نگارش 2.0.0 و بالاتر، در قالب HTML خروجی خواهد داد).
تولید خروجی ASCII در قالب HTML (Living Standard)، مناسب برای مشاهده در مرورگرهای وب. این گزینه برای ابعاد خروجی بزرگ، و زمانی که می‌خواهید نتیجه را در یک مرورگر با قلم کوچک بررسی کنید سودمند است.
تولید خروجی ASCII در استاندارد دقیق XHTML 1.0.
--html-fill
مشابه --fill. بهتر است به جای این، از آن گزینه استفاده کنید.
--html-no-bold
عدم استفاده از متن درشت (bold) برای خروجی HTML.
--html-raw
خروجی دادن تصویر تنها در قالب کدهای HTML بدون بقیه بخش‌های صفحه وب، تا بتوانید صفحه وب خود را بسازید. (برای نگارش 2.0.0 و بالاتر به جای <br/> از <br> استفاده خواهد شد).
--html-fontsize=N
تنظیم اندازه قلم هنگام استفاده از خروجی --html. مقدار پیش‌فرض 4 است.
--html-title=...
تنظیم عنوان خروجی HTML.
نوشتن خروجی ASCII در نام‌فایل داده‌شده. برای مشخص کردن صریح خروجی استاندارد، از --output=- استفاده کنید.
معکوس کردن تصویر خروجی. اگر تصویری را با پس‌زمینه سفید مشاهده می‌کنید، اما از نمایشگری با نویسه‌های روشن روی پس‌زمینه تیره استفاده می‌کنید، باید تصویر را معکوس کنید.
هنگام تبدیل از RGB به مقیاس خاکستری، از وزن‌های داده‌شده برای محاسبه روشنایی (luminance) استفاده می‌کند. مقادیر پیش‌فرض عبارتند از red=0.2989، green=0.5866 و blue=0.1145.
تنظیم ابعاد خروجی.
چاپ برخی اطلاعات تفصیلی در خروجی خطای استاندارد هنگام خواندن هر تصویر JPEG.
تنظیم عرض خروجی. اگر تنها عرض را مشخص کنید، ارتفاع به‌طور خودکار محاسبه می‌شود.
چاپ نسخه برنامه.
تنظیم ابعاد خروجی بر روی تمام پنجره ترمینال شما، بدون در نظر گرفتن نسبت ابعاد تصویر منبع.
یک شیب رنگ (gradient) تصویر را مشخص می‌کند که بالاتر از آن خطوط و لبه‌ها با گلیف‌های جهت‌دار (مانند -/|\) سایه‌زنی می‌شوند. مقدار مناسب برای تفکیک مناسب لبه‌ها به تصویر بستگی دارد اما ممکن است در حدود 0.5 باشد.
تنها رسم لبه‌ها، به‌طوری که تصویر حاصل مانند یک طرح خطی یا خروجی آشکارساز لبه باشد. این گزینه باید همراه با --edge-threshold استفاده شود تا لبه‌ها رسم شوند.

دستور jp2a در صورت مواجهه با خطا مقدار 1 و در صورت نبود خطا مقدار 0 را بازمی‌گرداند.

تبدیل و چاپ imagefile.jpg با استفاده از نویسه‌های ASCII در ۴۰ ستون و ۲۰ سطر:

jp2a --size=40x20 imagefile.jpg

بارگیری یک تصویر از اینترنت، تبدیل و چاپ آن:

jp2a http://www.google.com/intl/en/logos/easter_logo.jpg

خروجی دادن picture.jpg و picture2.jpg، هر کدام با ابعاد 80x25 نویسه، با استفاده از نویسه‌های " ...ooxx@@" برای خروجی:

jp2a --size=80x25 --chars=" ...ooxx@@" picture.jpg picture2.jpg

خروجی دادن image.jpg با استفاده از ۷۶ ستون، که در آن ارتفاع به‌طور خودکار از نسبت ابعاد image.jpg محاسبه می‌شود:

cat image.jpg | jp2a --width=76 -

اگر از jp2a همراه با convert(1) متعلق به ImageMagick استفاده کنید، می‌توانید به‌خوبی از لوله‌ها (pipes) بهره ببرید و بگذارید ImageMagick انواع تبدیل‌ها و جلوه‌های تصویری را روی تصویر منبع پیاده کند. برای نمونه:

magick somefile.gif jpg:- | jp2a - --width=80

گزینه‌های convert(1) را بررسی کنید تا ببینید چه کارهایی می‌توانید انجام دهید. convert تقریباً از پس هر قالب تصویری برمی‌آید، بنابراین با این ترکیب می‌توانید تصاویری مثل فایل‌های PDF یا AVI را به ASCII تبدیل کنید.

دستور jp2a برای هر قالب تصویری به جز WebP از یک الگوریتم مقیاس‌پذیری بسیار ابتدایی استفاده می‌کند. برای دریافت کیفیت بهتر، تصویر را به WebP تبدیل کنید تا از مقیاس‌پذیری تعبیه‌شده در کتابخانه libwebp استفاده شود:

cwebp -quiet image.jpg -o - | jp2a -

اگرچه ساخت پیش‌فرض jp2a شامل بارگیری خودکار فایل‌های ارائه‌شده با URL است، اما می‌توانید آن‌ها را صریحاً با curl(1) یا wget(1) بارگیری کنید، برای نمونه:

curl -s http://foo.bar/image.jpg | magick - jpg:- | jp2a -

می‌توانید گزینه --edge-threshold را برای برجسته‌سازی لبه‌های تصویر ارسال کنید، یا گزینه --edges-only را اضافه نمایید تا تنها لبه‌ها رسم شوند و یک طرح خطی تولید شود.

jp2a --edge-threshold=0.5 --edges-only imagefile.jpg

اگر jp2a را با libcurl(3) کامپایل کرده باشید، می‌توانید با تعیین URLها تصاویر را بارگیری کنید:

jp2a https://user:pass@foo.com/bar.jpg

پروتکل‌های شناسایی‌شده عبارتند از ftp، ftps، file، http، https و tftp.

اگر به کنترل بیشتری بر روند بارگیری نیاز دارید، باید از curl(1) یا wget(1) استفاده کنید و بگذارید jp2a تصویر را از ورودی استاندارد بخواند.

دستور jp2a برای بارگیری تصاویر با استفاده از libcurl از لوله (pipe) و fork استفاده می‌کند (به این معنی که هیچ فراخوانی سیستمی یا exec اجرا نمی‌شود) و بنابراین نگرانی از بابت URLهای مخرب وجود ندارد.

می‌توانید کانال قرمز را با این دستور استخراج کنید:

jp2a somefile.jpg --red=1.0 --green=0.0 --blue=0.0

این دستور روشنایی را بر اساس فرمول Y = R*1.0 + G*0.0 + B*0.0 محاسبه خواهد کرد. مقادیر پیش‌فرض استفاده از رابطه Y = R*0.2989 + G*0.5866 + B*0.1145 است.

آخرین نگارش jp2a و اخبار آن همواره در https://github.com/Talinx/jp2a در دسترس است.

cjpeg(1), djpeg(1), jpegtran(1), convert(1), cwebp(1)

دستور jp2a هنگام تغییر اندازه درون‌یابی (interpolation) نمی‌کند (به جز برای تصاویر WebP). اگر کیفیت بهتری می‌خواهید، پیش از استفاده از jp2a تلاش کنید با استفاده از cwebp(1) تصویر را به WebP تبدیل کنید تا مقیاس‌پذیری صحیحی به دست آورید.

مسئله دیگر این است که jp2a برخی از پیکسل‌های محور X را در امتداد هر خط پویش (scanline) نادیده می‌گیرد. این امر تصویر خروجی کم‌دقت‌تری ایجاد می‌کند و احتمالاً در نسخه‌های آینده برطرف خواهد شد.

Christian Stigen Larsen و Christoph Raitzig

دستور jp2a از jpeglib برای خواندن فایل‌های JPEG استفاده می‌کند. کتابخانه jpeglib توسط The Independent JPEG Group (IJG) ساخته شده است که وب‌گاهی در http://www.ijg.org دارد.

دستور jp2a از libpng برای خواندن فایل‌های PNG استفاده می‌کند. صفحه اصلی libpng: http://libpng.org/pub/png/libpng.html

دستور jp2a از libwebp برای خواندن فایل‌های WebP استفاده می‌کند. صفحه اصلی libwebp: https://developers.google.com/speed/webp

نرم‌افزار jp2a تحت مجوز عمومی همگانی گنو نگارش ۲ (GNU General Public License v2) توزیع می‌شود.

September 22, 2024 version 1.3.0