| jp2a(1) | USER COMMANDS | jp2a(1) |
نام (NAME)
jp2a - تبدیل تصاویر JPEG، PNG و WebP به اسکی (ASCII)
خلاصه دستور (SYNOPSIS)
jp2a [ options ] [ filename(s) | URL(s) ]
توضیحات (DESCRIPTION)
دستور jp2a تصاویر JPEG، PNG و WebP را به نویسههای ASCII تبدیل میکند. میتوانید ترکیبی از فایلها و URLها را مشخص کنید.
گزینهها (OPTIONS)
- -
- خواندن تصویر JPEG، PNG و WebP از ورودی استاندارد
- --background=light --background=dark
- اگر نمیخواهید مدام با --invert سر و کار داشته باشید، کافی است به جای آن از این گزینهها استفاده کنید. اگر از نویسههای سفید روی نمایشگر تیره استفاده میکنید، از --background=dark استفاده کنید، و برعکس.
- -b --border
- قراردادن تصویر خروجی در یک کادر (حاشیه)
- --chars=...
- استفاده از نویسههای دادهشده هنگام تولید تصویر خروجی ASCII. پیشفرض " ...',;:clodxkO0KXNWM" است.
- --colors
- استفاده از رنگ واقعی (truecolor) (یا در صورت عدم پشتیبانی از truecolor، رنگ ANSI) برای خروجی متنی، و رنگ CSS برای خروجی HTML.
- --color-depth=...
- استفاده از یک عمق رنگ (color-depth) مشخص برای خروجی ترمینال. مقادیر معتبر عبارتند از: 4 (برای ANSI)، 8 (برای پالت ۲۵۶ رنگ) و 24 (برای truecolor یا رنگ ۲۴ بیتی).
- -d --debug
- چاپ اطلاعات اشکالزدایی هنگام استفاده از libcurl برای بارگیری تصاویر از اینترنت.
- -f --term-fit
- استفاده از بزرگترین ابعادی که تصویر را در صفحه نمایش ترمینال شما جا دهد.
- --term-height
- استفاده از ارتفاع صفحه نمایش ترمینال و محاسبه عرض بر اساس نسبت تصویر (aspect ratio).
- --term-width
- استفاده از عرض صفحه نمایش ترمینال و محاسبه ارتفاع بر اساس نسبت تصویر.
- -z --term-zoom
- استفاده همزمان از عرض و ارتفاع صفحه نمایش ترمینال.
- -c --term-center
- قرار دادن تصویر در مرکز ترمینال.
- --fill
- هنگامی که
همراه با --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 است.
- -x --flipx
- وارونهسازی افقی تصویر خروجی
- -y --flipy
- وارونهسازی عمودی تصویر خروجی
- --height=N
- تنظیم ارتفاع خروجی. اگر فقط --height مشخص شده باشد، عرض خروجی بر اساس نسبت ابعاد تصویر منبع محاسبه خواهد شد.
- -h --help
- نمایش یک متن راهنمای کوتاه
- --grayscale
- تبدیل تصویر به مقیاس خاکستری (grayscale) هنگام استفاده از --html یا --colors.
- --html
- تولید خروجی ASCII در استاندارد دقیق XHTML 1.0. (برای نگارش 2.0.0 و بالاتر، در قالب HTML خروجی خواهد داد).
- --htmlls
- تولید خروجی ASCII در قالب HTML (Living Standard)، مناسب برای مشاهده در مرورگرهای وب. این گزینه برای ابعاد خروجی بزرگ، و زمانی که میخواهید نتیجه را در یک مرورگر با قلم کوچک بررسی کنید سودمند است.
- --xhtml
- تولید خروجی 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.
- --output=...
- نوشتن خروجی ASCII در نامفایل دادهشده. برای مشخص کردن صریح خروجی استاندارد، از --output=- استفاده کنید.
- -i --invert
- معکوس کردن تصویر خروجی. اگر تصویری را با پسزمینه سفید مشاهده میکنید، اما از نمایشگری با نویسههای روشن روی پسزمینه تیره استفاده میکنید، باید تصویر را معکوس کنید.
- --red=...
- --green=...
- --blue=...
- هنگام تبدیل از RGB به مقیاس خاکستری، از وزنهای دادهشده برای محاسبه روشنایی (luminance) استفاده میکند. مقادیر پیشفرض عبارتند از red=0.2989، green=0.5866 و blue=0.1145.
- --size=WIDTHxHEIGHT
- تنظیم ابعاد خروجی.
- -v --verbose
- چاپ برخی اطلاعات تفصیلی در خروجی خطای استاندارد هنگام خواندن هر تصویر JPEG.
- --width=N
- تنظیم عرض خروجی. اگر تنها عرض را مشخص کنید، ارتفاع بهطور خودکار محاسبه میشود.
- -V --version
- چاپ نسخه برنامه.
- --zoom
- تنظیم ابعاد خروجی بر روی تمام پنجره ترمینال شما، بدون در نظر گرفتن نسبت ابعاد تصویر منبع.
- --edge-threshold= ...
- یک شیب رنگ (gradient) تصویر را مشخص میکند که بالاتر از آن خطوط و لبهها با گلیفهای جهتدار (مانند -/|\) سایهزنی میشوند. مقدار مناسب برای تفکیک مناسب لبهها به تصویر بستگی دارد اما ممکن است در حدود 0.5 باشد.
- --edges-only
- تنها رسم لبهها، بهطوری که تصویر حاصل مانند یک طرح خطی یا خروجی آشکارساز لبه باشد. این گزینه باید همراه با --edge-threshold استفاده شود تا لبهها رسم شوند.
وضعیت خروج (EXIT STATUS)
دستور jp2a در صورت مواجهه با خطا مقدار 1 و در صورت نبود خطا مقدار 0 را بازمیگرداند.
مثالها (EXAMPLES)
تبدیل و چاپ 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
بارگیری تصاویر از اینترنت (DOWNLOADING IMAGES FROM THE NET)
اگر 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های مخرب وجود ندارد.
تبدیل به مقیاس خاکستری (GRAYSCALE CONVERSION)
میتوانید کانال قرمز را با این دستور استخراج کنید:
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 است.
صفحه اصلی پروژه (PROJECT HOMEPAGE)
آخرین نگارش jp2a و اخبار آن همواره در https://github.com/Talinx/jp2a در دسترس است.
همچنین ببینید (SEE ALSO)
cjpeg(1), djpeg(1), jpegtran(1), convert(1), cwebp(1)
گزارش باگها (BUGS)
دستور jp2a هنگام تغییر اندازه درونیابی (interpolation) نمیکند (به جز برای تصاویر WebP). اگر کیفیت بهتری میخواهید، پیش از استفاده از jp2a تلاش کنید با استفاده از cwebp(1) تصویر را به WebP تبدیل کنید تا مقیاسپذیری صحیحی به دست آورید.
مسئله دیگر این است که jp2a برخی از پیکسلهای محور X را در امتداد هر خط پویش (scanline) نادیده میگیرد. این امر تصویر خروجی کمدقتتری ایجاد میکند و احتمالاً در نسخههای آینده برطرف خواهد شد.
نویسندگان (AUTHORS)
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
کپیرایت و تکثیر (COPYRIGHT)
نرمافزار jp2a تحت مجوز عمومی همگانی گنو نگارش ۲ (GNU General Public License v2) توزیع میشود.
| September 22, 2024 | version 1.3.0 |