Popularity
6.6
Growing
Activity
0.0
Stable
443
9
40

Programming language: Go
Tags: Images    
Latest version: v1.0.1

image2ascii alternatives and similar packages

Based on the "Images" category

Do you think we are missing an alternative of image2ascii or a related project?

Add another 'Images' Package

README

:foggy: Image2ascii

Build Status Coverage Status Codacy Badge Go Report Card GoDoc License: MIT Awesome

Image2ASCII is a library that converts images into ASCII images and provides command-line tools for easy use.

demo

Installation

go get github.com/qeesung/image2ascii

CLI usage

image2ascii version: image2ascii/1.0.0
>> HomePage: https://github.com/qeesung/image2ascii
>> Issue   : https://github.com/qeesung/image2ascii/issues
>> Author  : qeesung
Usage: image2ascii [-s] -f <filename> -r <ratio> -w <width> -g <height>

Options:
  -c    Colored the ascii when output to the terminal (default true)
  -f string
        Image filename to be convert (default "docs/images/lufei.jpg")
  -g int
        Expected image height, -1 for image default height (default -1)
  -i    Reversed the ascii when output to the terminal
  -r float
        Ratio to scale the image, ignored when use -w or -g (default 1)
  -s    Fit the terminal screen, ignored when use -w, -g, -r (default true)
  -t    Stretch the picture to overspread the screen
  -w int
        Expected image width, -1 for image default width (default -1)

convert the image fit the screen(default is true)

image2ascii -f docs/images/pikaqiu2.jpg

demo

convert the image to ascii image with fixed width and height

# width: 100
# height: 30
image2ascii -f docs/images/baozou.jpg -w 100 -g 30

demo

convert the image to ascii image by ratio

# ratio: 0.3
# width: imageWidth * 0.3
# height: imageHeight * 0.3
image2ascii -f docs/images/pikaqiu.jpg -r 0.3

demo

convert the image to stretch the screen

image2ascii -f docs/images/long.jpg -t

demo

convert the image without the color

image2ascii -f docs/images/lufei.jpg -s -c=false

convert the image disable fit the screen

image2ascii -f docs/images/lufei.jpg -s=false

convert the image reverse the chars

image2ascii -f docs/images/lufei.jpg -i

Library usage

package main

import (
    "fmt"
    "github.com/qeesung/image2ascii/convert"
    _ "image/jpeg"
    _ "image/png"
)

func main() {
    // Create convert options
    convertOptions := convert.DefaultOptions
    convertOptions.FixedWidth = 100
    convertOptions.FixedHeight = 40

    // Create the image converter
    converter := convert.NewImageConverter()
    fmt.Print(converter.ImageFile2ASCIIString(imageFilename, &convertOptions))
}

convert options

type Options struct {
    Ratio           float64 // convert ratio
    FixedWidth      int  // convert the image width fixed width
    FixedHeight     int  // convert the image width fixed height
    FitScreen       bool // only work on terminal, fit the terminal height or width
    StretchedScreen bool // only work on terminal, stretch the width and heigh to overspread the terminal screen
    Colored         bool // only work on terminal, output ascii with color
    Reversed        bool // if reverse the ascii pixels
}

supported convert function

type Converter interface {
    // convert a image object to ascii matrix
    Image2ASCIIMatrix(image image.Image, imageConvertOptions *Options) []string
    // convert a image object to ascii matrix and then join the matrix to a string
    Image2ASCIIString(image image.Image, options *Options) string
    // convert a image object by input a string to ascii matrix
    ImageFile2ASCIIMatrix(imageFilename string, option *Options) []string
    // convert a image object by input a string to ascii matrix then join the matrix to a string
    ImageFile2ASCIIString(imageFilename string, option *Options) string
}

Sample outputs

Raw Image ASCII Image

License

This project is under the MIT License. See the LICENSE file for the full license text.


*Note that all licence references and agreements mentioned in the image2ascii README section above are relevant to that project's source code only.