terminal-image: نمایش تصویر داخل ترمینال
خلاصهٔ کاملتر
تو مستندات پروژه اومده که terminal-image یه ماژول Node هست که مسیر یا بافر یه تصویر رو میگیره و رشتهای از کدهای ANSI تحویل میده؛ کافیه اونو با console.log چاپ کنی تا عکس همونجا وسط خروجی ترمینال ظاهر شه. PNG و JPEG پشتیبانی میشن و برای GIF متحرک هم gifFile و gifBuffer رو داری.
جذابیت کار اینه که خودش ترمینال رو تشخیص میده و بهترین حالت ممکن رو انتخاب میکنه: اول پروتکل گرافیکی Kitty (تو Kitty، Konsole و WezTerm)، بعد پروتکل تصاویر درونخطی iTerm2، و اگه هیچکدوم در دسترس نبود میافته روی حالت همگانی، یعنی نیمبلوکهای یونیکد با رنگ ۲۴ بیتی. نتیجه اینه که روی ترمینالهای گرافیکی تصویر با رزولوشن کامل درمیاد و جاهای دیگه یه نسخهٔ بلوکی ولی رنگی ازش میبینی.
استفادهٔ پایهش عملاً یه خطه:
import terminalImage from 'terminal-image';
console.log(await terminalImage.file('unicorn.jpg'));برای اندازه میتونی width و height بدی، هم به شکل درصدی از پنجرهٔ ترمینال و هم به تعداد ستون و سطر — مستندات حالت درصدی رو توصیه میکنه. نسبت ابعاد بهصورت پیشفرض حفظ میشه و با preserveAspectRatio: false خاموش میشه، ولی تصویر در هر حال تو اندازهٔ ترمینال جا داده میشه. برای GIF هم maximumFrameRate (پیشفرض ۳۰) و یه renderFrame سفارشی داری.
نکات کلیدی:
- PNG، JPEG و GIF متحرک، بدون نیاز به ابزار جانبی
- روی iTerm2، Kitty و WezTerm رزولوشن کامل؛ جاهای دیگه رندر با بلوکهای یونیکد
- اندازه با درصد یا تعداد سطر و ستون؛ حالت درصدی توصیه شده
- preferNativeRender: false رندر ANSI رو اجباری میکنه




