IMG2SIXEL(1) General Commands Manual IMG2SIXEL(1)

img2sixel - مبدل تصویر به قالب گرافیکی DEC SIXEL

img2sixel [ -options ] imagefiles
img2sixel [ -options ] < imagefiles

دستور img2sixel تصاویر مختلف را به قالب تصویر باکیفیت DEC SIXEL تبدیل می‌کند.

دستور img2sixel دارای گزینه‌های خط فرمان زیر است:

مشخص کردن نام فایل خروجی (پیش‌فرض: stdout).
-7, --7bit-mode
تولید یک تصویر sixel برای پایانه‌ها یا چاپگرهای ۷ بیتی (پیش‌فرض).
-8, --8bit-mode
تولید یک تصویر sixel برای پایانه‌ها یا چاپگرهای ۸ بیتی.
محدود کردن آرگومان‌های DECGRI('!') به ۲۵۵.
مشخص کردن تعداد رنگ‌ها جهت کاهش رنگ تصویر به آن (پیش‌فرض=۲۵۶).
تبدیل رنگ‌های تصویر برای مطابقت با این نگاشت رنگ‌های مشخص‌شده.
خروجی تصویر sixel به صورت تک‌رنگ (سیاه‌وسفید). این گزینه فرض می‌کند که رنگ پس‌زمینه پایانه مشکی است.
اجازه اتصال به سایت‌های SSL بدون بررسی گواهی‌ها (تنها در صورتی فعال است که با --with-libcurl پیکربندی شده باشد)
فرض کردن اینکه رنگ پس‌زمینه پایانه سفید است. تنها زمانی موثر است که گزینه -e مشخص شده باشد.
خروجی تصویر sixel با عمق رنگ 15bpp
استفاده از توالی‌های DECDMAC و DEVINVM برای بهینه‌سازی رندر پویانمایی GIF.
مشخص کردن یک آرگومان عددی برای DECDMAC و وادار کردن پایانه به ذخیره تصویر SIXEL در حافظه. در صورت مشخص شدن این گزینه هیچ تصویری نمایش داده نمی‌شود.
مشخص کردن یک آرگومان عددی برای امتیاز تصحیح رنگ چهره. COMPLEXIONSCORE باید ۱ یا بیشتر باشد.
رندر پویانمایی GIF بدون تاخیر.
رندر پویانمایی GIF به عنوان یک تصویر ایستا.
انتخاب روش دیفیوژن (پخش خطا) که همراه با کاهش رنگ استفاده می‌شود.
DIFFUSIONTYPE یکی از این موارد است:
auto -> انتخاب خودکار نوع دیفیوژن (پیش‌فرض)
none -> بدون دیفیوژن
fs -> روش Floyd-Steinberg
atkinson -> روش Bill Atkinson
jajuni -> روش Jarvis, Judice & Ninke
stucki -> روش Stucki
burkes -> روش Burkes
a_dither -> خطاته‌رنگی (dither) حسابی پایدار از نظر موقعیت
x_dither -> خطاته‌رنگی حسابی مبتنی بر xor پایدار از نظر موقعیت
انتخاب روش برای یافتن بزرگ‌ترین بُعد جعبه‌های median cut جهت تقسیم؛ تنها زمانی موثر است که گزینه -p (کاهش رنگ) مشخص شده باشد.
FINDTYPE یکی از این موارد است:
auto -> انتخاب خودکار روش جستجو (پیش‌فرض)
norm -> مقایسه ساده بازه در فضای RGB
lum -> تبدیل به درخشندگی‌ها پیش از مقایسه
انتخاب روش برای برگزیدن رنگ نماینده از هر جعبه median-cut؛ تنها زمانی موثر است که گزینه -p (کاهش رنگ) مشخص شده باشد.
SELECTTYPE یکی از این موارد است:
auto -> انتخاب خودکار روش گزینش (پیش‌فرض)
center -> انتخاب مرکز جعبه
average -> محاسبه میانگین رنگ درون جعبه
histogram -> مشابه میانگین اما با در نظر گرفتن هیستوگرام رنگ
بریدن تصویر مبدا متناسب با هندسه مشخص‌شده.
محدوده (REGION) باید در قالب '%dx%d+%d+%d' باشد.
تغییر اندازه تصویر به عرض مشخص‌شده.
WIDTH با ساختار دستوری زیر مشخص می‌شود:
auto -> حفظ نسبت ابعاد (پیش‌فرض)
<number>% -> مقیاس‌بندی عرض با درصد مشخص‌شده
<number> -> مقیاس‌بندی عرض با تعداد پیکسل
<number>px -> مقیاس‌بندی عرض با تعداد پیکسل
تغییر اندازه تصویر به ارتفاع مشخص‌شده.
HEIGHT با ساختار دستوری زیر مشخص می‌شود:
auto -> حفظ نسبت ابعاد (پیش‌فرض)
<number>% -> مقیاس‌بندی ارتفاع با درصد مشخص‌شده
<number> -> مقیاس‌بندی ارتفاع با تعداد پیکسل
<number>px -> مقیاس‌بندی ارتفاع با تعداد پیکسل
انتخاب روش بازنمونه‌برداری (resampling) مورداستفاده با گزینه‌های -w یا -h (تغییر مقیاس).
RESAMPLINGTYPE یکی از این موارد است:
nearest -> روش Nearest-Neighbor
gaussian -> فیلتر Gaussian
hanning -> فیلتر Hanning
hamming -> فیلتر Hamming
bilinear -> فیلتر Bilinear (پیش‌فرض)
welsh -> فیلتر Welsh
bicubic -> فیلتر Bicubic
lanczos2 -> فیلتر Lanczos-2
lanczos3 -> فیلتر Lanczos-3
lanczos4 -> فیلتر Lanczos-4
انتخاب کیفیت کوانتش رنگ (color quantization).
QUALITYMODE یکی از این موارد است:
auto -> تعیین خودکار حالت کیفیت (پیش‌فرض)
high -> حالت کیفیت بالا و سرعت پایین
low -> حالت کیفیت پایین و سرعت بالا
full -> حالت باکیفیت و سرعت دقیق
انتخاب حالت کنترل تکرار (loop) برای پویانمایی GIF.
auto -> رعایت تنظیمات سرآیند GIF (پیش‌فرض)
force -> همیشه فعال کردن تکرار
disable -> همیشه غیرفعال کردن تکرار.TP 5 -t PALETTETYPE, --palette-type=PALETTETYPE انتخاب نوع فضای رنگی پالت.
auto -> انتخاب نوع پالت به‌صورت خودکار (پیش‌فرض)
hls -> استفاده از فضای رنگی HLS
rgb -> استفاده از فضای رنگی RGB
انتخاب نوع پالت توکار
xterm16 -> نگاشت ۱۶ رنگ پیش‌فرض X
xterm256 -> نگاشت ۲۵۶ رنگ پیش‌فرض X
vt340mono -> نگاشت تک‌رنگ VT340
vt340color -> نگاشت رنگی VT340
انتخاب سیاست کدگذاری
auto -> انتخاب خودکار سیاست کدگذاری (پیش‌فرض)
fast -> کدگذاری در سریع‌ترین زمان ممکن
size -> کدگذاری به کوچک‌ترین دنباله sixel ممکن

تعیین رنگ پس‌زمینه
BGCOLOR با نحو زیر مشخص می‌شود:
#rgb
#rrggbb
#rrrgggbbb
#rrrrggggbbbb
rgb:r/g/b
rgb:rr/gg/bb
rgb:rrr/ggg/bbb
rgb:rrrr/gggg/bbbb
گذر از GNU Screen با استفاده از توالی عبور مستقیم (pass-through) DCS.
[[منسوخ‌شده]] خواندن پیوسته تصاویر مبدأ از stdin.
نمایش اطلاعات اشکال‌زدایی.
نمایش اطلاعات نسخه و مجوز انتشار.
نمایش راهنما.

img2sixel گزینه‌های خط فرمان زیر را دارد:


تعیین رنگ پس‌زمینه.
توسط گزینه -B (--bgcolor) لغو می‌شود.
با نحو زیر مشخص می‌شود:
#rgb
#rrggbb
#rrrgggbbb
#rrrrggggbbbb
rgb:r/g/b
rgb:rr/gg/bb
rgb:rrr/ggg/bbb
rgb:rrrr/gggg/bbbb

تعیین تعداد رنگ‌ها برای کاهش رنگ‌های تصویر (پیش‌فرض=۲۵۶).
توسط گزینه -p (--colors) لغو می‌شود.

img2sixel شامل دو یا چند مؤلفه رمزگشای تصویر است.

libsixel شامل stb_image است، یک بارگذارنده تصویر در مالکیت عمومی (public domain).
img2sixel از آن به‌عنوان رمزگشای توکار پیش‌فرض تصویر استفاده می‌کند. این مؤلفه می‌تواند تقریباً تمام تصاویر را رمزگشایی کند، اما تعداد اندکی از تصاویر به دلیل محدودیت‌های آن قابل رمزگشایی نیستند.

قالب‌های مبدأ پشتیبانی‌شده:
JPEG baseline و progressive (عدم پشتیبانی از 12 bpc/کدگذاری حسابی، مشابه کتابخانه پیش‌فرض IJG)
PNG به‌صورت ۱/۲/۴/۸/۱۶ بیت بر کانال
TGA (مشخص نیست کدام زیرمجموعه، در صورت وجود زیرمجموعه)
BMP غیر 1bpp، غیر RLE
PSD (فقط نمای ترکیبی، بدون کانال‌های اضافی)
PIC (Softimage PIC)
PNM (فقط PPM و PGM دودویی)

محدودیت‌ها:
عدم پشتیبانی از JPEG با ۱۲ بیت در هر کانال
عدم پشتیبانی از JPEG با کدگذاری حسابی (arithmetic) / JPEG 2000
عدم پشتیبانی از BMP تک‌بیتی (1-bit)


اگر کتابخانه libpng در زمان کامپایل پیوند داده شده باشد، img2sixel از آن برای رمزگشایی تصویر PNG استفاده می‌کند.


اگر کتابخانه libjpeg در زمان کامپایل پیوند داده شده باشد، img2sixel از آن برای رمزگشایی تصویر JPEG استفاده می‌کند.


اگر کتابخانه gdk-pixbuf2 در زمان کامپایل پیوند داده شده باشد، img2sixel در برخی موارد به‌طور خودکار از آن استفاده می‌کند.


اگر کتابخانه GD در زمان کامپایل پیوند داده شده باشد، img2sixel در برخی موارد به‌طور خودکار از آن استفاده می‌کند.


img2sixel می‌تواند SIXEL را به‌عنوان قالب تصویر مبدأ بارگذاری کند، زیرا از libsixel به‌عنوان رمزگشای تصویر SIXEL استفاده می‌کند..SH "تاریخچه (HISTORY)"

کدگذارهای پیشین SIXEL (مانند ppmtosixel) عمدتاً برای چاپگرهای سوزنی (dot-matrix) طراحی شده بودند. آن‌ها میزان مسافت حرکت هد چاپگر را به حداقل می‌رساندند. اما امروزه این روش بهترین کارایی را برای نمایش داده‌های sixel در شبیه‌سازهای ترمینال ارائه نمی‌دهد. داده‌های SIXEL کدگذاری‌شده برای ترمینال‌های VT-2xx/VT-3xx در Usenet دهه ۱۹۸۰ یافت شدند، اما به نظر می‌رسد فناوری نحوه ایجاد آن‌ها از بین رفته باشد.

kmiya's sixel (kmiya، ۲۰۱۴) روش کدگذاری کارآمدی را معرفی می‌کند که برای شبیه‌سازهای ترمینال بازطراحی شده است تا سربار انتقال SIXEL را با حفظ سازگاری با ترمینال‌های پیشین SIXEL بهینه‌سازی کند. اکنون libsixel و کدگذار sixel متعلق به ImageMagick از آن پیروی می‌کنند.

Araki Ken، که به عنوان نگه‌دارنده‌ی mlterm شناخته می‌شود، روشی را برای کدگذاری فشرده‌تر SIXEL پیشنهاد داد. اکنون libsixel آن روش را به کار گرفته است. Araki Ken نحوه تولید SIXEL با کیفیت بالا را شرح می‌دهد.

ببینید: http://mlterm.sourceforge.net/libsixel.pdf (به زبان ژاپنی).

sixel(5) sixel2png(1)

نگه‌داری img2sixel بر عهده Hayaki Saito است. ما کل کد stb_image v2.12، نوشته‌شده توسط Sean Barrett و مشارکت‌کنندگان آن را برای بارگذاری تصاویر گوناگون، و بخش‌هایی از کد pnmquant.c (netpbm library) را برای کوانتیزاسیون تصویر وارد کرده‌ایم.

Copyright (c) 2014-2016 Hayaki Saito

بدین‌وسیله به هر شخصی که نسخه‌ای از این نرم‌افزار و پرونده‌های مستندات مرتبط («نرم‌افزار») را دریافت می‌کند، به رایگان اجازه داده می‌شود که بدون هیچ محدودیتی با نرم‌افزار رفتار کند، از جمله بدون محدودیت، حقوق استفاده، کپی، تغییر، ادغام، انتشار، توزیع، اعطای مجوز فرعی و/یا فروش نسخه‌های نرم‌افزار، و اجازه دادن به افرادی که نرم‌افزار در اختیار آن‌ها قرار می‌گیرد تا با رعایت شرایط زیر چنین کنند:

اعلان حق نشر بالا و این اعلان مجوز باید در تمام نسخه‌ها یا بخش‌های عمده نرم‌افزار گنجانده شود.

این نرم‌افزار «همان‌گونه که هست»، بدون هیچ‌گونه ضمانت صریح یا ضمنی، شامل اما نه محدود به ضمانت‌های تجاری بودن، مناسب بودن برای یک هدف خاص و عدم نقض حق دیگران ارائه می‌شود. در هیچ حالتی نویسندگان یا دارندگان حق نشر در قبال هرگونه ادعا، خسارت یا مسئولیت دیگر، خواه در یک دعوای قراردادی، شبه‌جرم یا غیر آن، که ناشی از یا در ارتباط با نرم‌افزار یا استفاده از آن یا سایر تعاملات با نرم‌افزار باشد، مسئولیتی نخواهند داشت.

این نرم‌افزار از پیاده‌سازی‌های زیر مشتق شده است.

این نرم‌افزار شامل stb_image-v2.12 (stb_image.h) است، یک خواننده‌ی JPEG/PNG در مالکیت عمومی (public domain).
https://github.com/nothings/stb
پیاده‌سازی الگوریتم median cut برای کوانتیزاسیون رنگ در quant.c از pnmcolormap موجود در netpbm library وارد شده است.
http://netpbm.sourceforge.net
pnmcolormap از ppmquant مشتق شده که در اصل توسط Jef Poskanzer نوشته شده است.

Copyright (C) 1989, 1991 by Jef Poskanzer.
Copyright (C) 2001 by Bryan Henderson.
بدین‌وسیله مجوز استفاده، کپی، تغییر و توزیع این نرم‌افزار و مستندات آن برای هر مقصودی و بدون پرداخت هزینه اعطا می‌شود، مشروط بر اینکه اطلاعیه حق نشر بالا در تمامی نسخه‌ها ذکر شود و هر دوی آن اطلاعیه حق نشر و این اطلاعیه مجوز در مستندات پشتیبان قید گردند. این نرم‌افزار «همان‌گونه که هست» بدون هرگونه ضمانت صریح یا ضمنی ارائه می‌شود.

بخش‌هایی از converters/loader.c از نسخه اصلی «sixel» اثر kmiya (2014-3-2) مشتق شده است.
http://nanno.dip.jp/softlib/man/rlogin/sixel.tar.gz
این بخش توسط kmiya@culti نوشته شده است.
او آن را تحت مجوزی بسیار آسان‌گیر توزیع می‌کند که استفاده، کپی، تغییر، بازتوزیع و تمامی فعالیت‌های عمومی دیگر را بدون هرگونه محدودیتی مجاز می‌داند.
او اعلام کرده است که این مجوز با MIT/BSD/GPL سازگار است.

ما چند فیلتر نمونه‌برداری مجدد (resampling) را با ارجاع به مجموعه‌ی فیلترهای resize.c در MagickCore اضافه کرده‌ایم.

http://www.imagemagick.org/api/MagickCore/resize_8c_source.html

Araki Ken (@arakiken)
Markus Elfring (@elfring)
Akinori Hattori (@hattya)
isaki (@isaki68k)
NOKUBI Takatsugu (@knok)
Yasuhiro MATSUMOTO (@mattn)
Masami HIRATA(@msmhrt)
OBATA Akio (@obache)
Izumi Tsutsui (@tsutsui)
Iwamoto Kouichi (@ttdoda)
haru (@uobikiemukot)
Vertis Sidus (@vrtsds)
Bruce Mitchener (@waywardmonkeys)
Kazuhiro YOSHIKAWA (@yoshikaw)
Turenar <sora@turenar.xyz>
Yusuke Endoh <mame@ruby-lang.org>
mattn <mattn.jp@gmail.com>
Akinori Hattori <hattya@gentoo.org>
Øyvind Kolås <pippin@gimp.org>
Henri Salo (@fgeek)
hongxu (@HongxuChen)
pwd (@YourButterfly)
Nicholas Luedtke (@nluedtke)
cool-tomato (@cool-tomato)
•
گزارش‌های باگ، اصلاحات و بهبودها را به
saitoha@me.com
ارسال کنید.
Aug 2016 4th Berkeley Distribution