npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ink-asciify-image

v1.1.0

Published

Asciify image component for Ink.

Downloads

9

Readme

Ink-asciify-image · GitHub license npm version

Ink-asciify-image is a component for Ink.

Installation

npm install ink-asciify-image

Examples

import React from 'react'
import { render, Box } from 'ink'
import InkAsciifyImage from 'ink-asciify-image'

render(
    <Box gap={1}>
        <InkAsciifyImage
            url="./avatar.jpg"
            width={80}
            height={40}
            alt="Author's avatar"
        />
        <InkAsciifyImage
            url="./icon.png"
            width={40}
            height={40}
            tryCorrectAspectRatio
            renderInTwoBit
        />
        <InkAsciifyImage
            url="https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.pnggg"
            width={40}
            height={20}
            alt={
                'The wrong path, accidentally typed two extra "g" at the end of the URL'
            }
        />
    </Box>,
)

Result:

The output of the above code

APIs

React component

const InkAsciifyImage: React.FC<{
    url:⁰ string;
    width:¹ number;
    height:² number;
    tryCorrectAspectRatio?:³ boolean;
    renderInTwoBit?:⁴ boolean;
    alt?:⁵ string;
}>;
  • ⁰ [url]: URL of the rendered image, supports loading local URL, or network URL based on HTTP, supported image formats include "jpeg", "png" and "bmp".
  • ¹ [width]: Width of the rendered image.
  • ² [height]: Height of the rendered image.
  • ³ [tryCorrectAspectRatio]: Specifies whether to attempt to correct the aspect ratio of the rendered image, it often takes two ASCII characters to render a square like pixel point, this option would not eliminate the destructive effect on the original image's aspect ratio caused by the given width and height.
  • ⁴ [renderInTwoBit]: Specifies whether to render the image in monochrome.
  • ⁵ [alt]: Description of the image content, which will be displayed instead of an error message if the image fails to load.

Core function

/**
 * @throws {RangeError} Value of `width` or `height` must be natural number.
 */
function asciifyImage(url:⁰ string, { width, height, tryCorrectAspectRatio, renderInTwoBit }: {
    width:¹ number;
    height:² number;
    tryCorrectAspectRatio?:³ boolean;
    renderInTwoBit?:⁴ boolean;
}):⁵ Promise<Array<string>>;
  • ⁰ [url]: URL of the rendered image, supports loading local URL, or network URL based on HTTP, supported image formats include "jpeg", "png" and "bmp".
  • ¹ [width]: Width of the rendered image.
  • ² [height]: Height of the rendered image.
  • ³ [tryCorrectAspectRatio]: Specifies whether to attempt to correct the aspect ratio of the rendered image, it often takes two ASCII characters to render a square like pixel point, this option would not eliminate the destructive effect on the original image's aspect ratio caused by the given width and height.
  • ⁴ [renderInTwoBit]: Specifies whether to render the image in monochrome.
  • ⁵ [asciifyImage()]: It would return a promise instance contains an array which stores each line of ASCII characters rendered from image.

FAQ

License

Ink-asciify-image is MIT licensed.