承接 felixarntz/terminal-image 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

felixarntz/terminal-image

最新稳定版本:1.0.0

Composer 安装命令:

composer require felixarntz/terminal-image

包简介

A PHP port of the popular JavaScript library of the same name, enabling the display of images directly in the terminal.

README 文档

README

A PHP port of the popular JavaScript library of the same name, enabling the display of images directly in the terminal using ANSI escape sequences.

Terminal Image (PHP) CLI Screenshot
  • Supports JPEG, PNG, WebP, and any other format supported by PHP's GD library.
  • Works in any terminal that supports colors.
  • Requires PHP >= 7.4 with the GD extension.

Installation

composer require felixarntz/terminal-image

Usage

From a file path:

use FelixArntz\TerminalImage\TerminalImage; // excluded in the following examples

echo TerminalImage::file('unicorn.jpg');

From a binary string (e.g. an HTTP response body):

$data = file_get_contents('https://example.com/unicorn.jpg');
echo TerminalImage::buffer($data);

Scaling

By default, images are scaled to fit within the terminal window while preserving their aspect ratio.

Set a specific width in columns; height is derived from the aspect ratio:

echo TerminalImage::file('unicorn.jpg', ['width' => 40]);

Set a specific height in rows; width is derived from the aspect ratio:

echo TerminalImage::file('unicorn.jpg', ['height' => 20]);

Use a percentage of the terminal size:

echo TerminalImage::file('unicorn.jpg', ['width' => '50%']);

Set both dimensions; the image is scaled to fit within the box:

echo TerminalImage::file('unicorn.jpg', ['width' => 60, 'height' => 20]);

Disable aspect ratio preservation to stretch to exact dimensions:

echo TerminalImage::file('unicorn.jpg', [
    'width' => 60,
    'height' => 20,
    'preserveAspectRatio' => false,
]);

API

TerminalImage::file(string $filePath, array $options = []): string

Renders an image from a file path as a string of ANSI escape sequences.

  • $filePath — Absolute or relative path to the image file.
  • $options — Optional associative array of options (see below).

Throws InvalidArgumentException if the file does not exist, cannot be read, or contains invalid image data.

TerminalImage::buffer(string $data, array $options = []): string

Renders an image from a binary string as a string of ANSI escape sequences.

  • $data — Binary string of image data.
  • $options — Optional associative array of options (see below).

Throws InvalidArgumentException if the data is not a valid image.

Options

Key Type Default Description
width int or string Target width in columns, or a percentage string (e.g. '50%') relative to the terminal width.
height int or string Target height in rows, or a percentage string (e.g. '50%') relative to the terminal height.
preserveAspectRatio bool true Whether to preserve the aspect ratio when both width and height are provided.

When neither width nor height is provided, the image is scaled to fit within the terminal dimensions.

Credit

Major credit goes to @sindresorhus, who created the original terminal-image JavaScript library.

License

MIT

统计信息

  • 总下载量: 75
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-23

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固