~dricottone/image2ascii

ref: accafd8dfcd284df809b5462e308b6c836090ffa image2ascii/README.md -rw-r--r-- 5.0 KiB
accafd8d — 秦世成 Update README.md 6 years ago
                                                                                
9330e7cf 秦世成
aabae983 qeesung
89d4360b 秦世成
b234848f 秦世成
5f684178 秦世成
89d4360b 秦世成
accafd8d 秦世成
448b1ed9 qeesung
93fe9ac7 qeesung
448b1ed9 qeesung
93fe9ac7 qeesung
6e96550b 秦世成
b1f7b10d qeesung
6e96550b 秦世成
b1f7b10d qeesung
6e96550b 秦世成
93fe9ac7 qeesung
448b1ed9 qeesung
427a0f9e 秦世成
448b1ed9 qeesung
bc120092 qeesung
448b1ed9 qeesung
525a85ee 秦世成
93fe9ac7 qeesung
427a0f9e 秦世成
4c9f0029 qeesung
5f684178 秦世成
66fd4c17 秦世成
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# :foggy:image2ascii

[![Build Status](https://travis-ci.org/qeesung/image2ascii.svg?branch=master)](https://travis-ci.org/qeesung/image2ascii)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/71a3059b49274dde9d81d58cedd80962)](https://app.codacy.com/app/qeesung/image2ascii?utm_source=github.com&utm_medium=referral&utm_content=qeesung/image2ascii&utm_campaign=Badge_Grade_Dashboard)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

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

![demo](https://github.com/qeesung/image2ascii/blob/master/example/images/demo.gif?raw=true)

## Installation

```bash
go get https://github.com/qeesung/image2ascii
```

## CLI usage

```bash
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
  -g int
        Expected image height, -1 for image default height (default -1)
  -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)
  -w int
        Expected image width, -1 for image default width (default -1)
```

convert the image to ascii image with fixed width and height

```bash
# width: 100
# height: 30
image2ascii -f example/images/lufei.jpg -w 100 -g 30
```

convert the image to ascii image by ratio
```bash
# ratio: 0.3
# width: imageWidth * 0.3
# height: imageHeight * 0.3
image2ascii -f example/images/lufei.jpg -r 0.3
```

convert the image to ascii fit the screen
```bash
image2ascii -f example/images/lufei.jpg -s
```

convert the image without the color
```bash
image2ascii -f example/images/lufei.jpg -s -c=false
```

convert the image disable fit the screen
```bash
image2ascii -f example/images/lufei.jpg -s=false
```

## Library usage

```golang
package main

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

func main() {
	fmt.Print(convert.ImageFile2ASCIIString("example/images/baozou.jpg", &convert.Options{
		Ratio: 0.5,
	}))
}
```

convert options

```golang
type Options struct {
	Ratio          float64 .       // Scale Ratio
	ExpectedWidth  int             // Convert the image with fixed width
	ExpectedHeight int             // Convert the image with fixed height
	FitScreen      bool            // Scale the image to fit the tereminal screen
	Colored bool                   // if convert the image to colored ascii
}
```

supported convert function
```golang
// convert a image object to ascii matrix
func Image2ASCIIMatrix(image image.Image, imageConvertOptions *Options) []string {}

// convert a image object to ascii matrix and then join the matrix to a string
func Image2ASCIIString(image image.Image, options *Options) string {}

// convert a image object by input a string to ascii matrix then join the matrix to a string
func ImageFile2ASCIIString(imageFilename string, option *Options) string {}
```



## Sample outputs

| Raw Image                                                                                       | ASCII Image                                                                                                |
|:-----------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------:|
| ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/lufei.jpg)      | ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/lufei_ascii.png)           |
| ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/lufei.jpg)      | ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/lufei_ascii_colored.png)   |
| ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/pikaqiu.jpeg)   | ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/pikaqiu_ascii.png)         |
| ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/pikaqiu.jpeg)   | ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/pikaqiu_ascii_colored.png) |
| ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/baozou.jpg)     | ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/baozou_ascii.png)          |
| ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/baozou.jpg)     | ![](https://raw.githubusercontent.com/qeesung/image2ascii/master/example/images/baozou_ascii_colored.png)  |


## License

This project is under the MIT License. See the [LICENSE](https://github.com/qeesung/image2ascii/blob/master/LICENSE) file for the full license text.