图片转ASCII码初试

最近寻思着实现连接服务器的时候在终端打印一个LOGO,打算自己也弄一个ASCII的。去GitHub上一搜,果然发现了代码实现,贴上网址:https://github.com/korhner/asciimg

问题在于,代码是Java写的。对于JAVA菜鸡的我来说,还不知道怎么用起来。经过一番捣鼓后,也算实现了功能,记录下。这也算是试着用java编译软件了。

1 首先当然保证安装了JDK (java developer kit)。并且保证将路径添加到环境变量,否则javac无法使用。

2 从上面的网址下载完仓库后,解压文件,然后切换到目录下。
以下是大致过程
 

jlz@dell:~ $ cd asciimg-master/src
jlz@dell:~/asciimg-master/src$ tree
.
├── main
│   └── java
│       └── io
│           └── korhner
│               └── asciimg
│                   ├── image
│                   │   ├── AsciiImgCache.java
│                   │   ├── character_fit_strategy
│                   │   │   ├── BestCharacterFitStrategy.java
│                   │   │   ├── ColorSquareErrorFitStrategy.java
│                   │   │   └── StructuralSimilarityFitStrategy.java
│                   │   ├── converter
│                   │   │   ├── AsciiConverter.java
│                   │   │   ├── AsciiToImageConverter.java
│                   │   │   ├── AsciiToStringConverter.java
│                   │   │   └── GifToAsciiConvert.java
│                   │   └── matrix
│                   │       ├── GrayscaleMatrix.java
│                   │       └── TiledGrayscaleMatrix.java
│                   └── utils
│                       ├── AnimatedGifEncoder.java
│                       ├── ArrayUtils.java
│                       ├── GifDecoder.java
│                       ├── LZWEncoder.java
│                       └── NeuQuant.java
└── test
    └── java
        └── io
            └── korhner
                └── asciimg
                    ├── Examples.java
                    └── GifExamples.java

15 directories, 17 files

 

jlz@dell:~/asciimg-master/src$ cd main/java/io/korhner/asciimg/
jlz@dell:~/asciimg-master/src/main/java/io/korhner/asciimg$ javac image/AsciiImgCache.java image/character_fit_strategy/*.java image/converter/*.java image/matrix/*.java utils/*.java

jlz@dell:~/asciimg-master/src/main/java/io/korhner/asciimg$ tree
.
├── image
│   ├── AsciiImgCache.class
│   ├── AsciiImgCache.java
│   ├── character_fit_strategy
│   │   ├── BestCharacterFitStrategy.class
│   │   ├── BestCharacterFitStrategy.java
│   │   ├── ColorSquareErrorFitStrategy.class
│   │   ├── ColorSquareErrorFitStrategy.java
│   │   ├── StructuralSimilarityFitStrategy.class
│   │   └── StructuralSimilarityFitStrategy.java
│   ├── converter
│   │   ├── AsciiConverter.class
│   │   ├── AsciiConverter.java
│   │   ├── AsciiToImageConverter.class
│   │   ├── AsciiToImageConverter.java
│   │   ├── AsciiToStringConverter.class
│   │   ├── AsciiToStringConverter.java
│   │   ├── GifToAsciiConvert.class
│   │   └── GifToAsciiConvert.java
│   └── matrix
│       ├── GrayscaleMatrix.class
│       ├── GrayscaleMatrix.java
│       ├── TiledGrayscaleMatrix.class
│       └── TiledGrayscaleMatrix.java
└── utils
    ├── AnimatedGifEncoder.class
    ├── AnimatedGifEncoder.java
    ├── ArrayUtils.class
    ├── ArrayUtils.java
    ├── GifDecoder$GifFrame.class
    ├── GifDecoder.class
    ├── GifDecoder.java
    ├── LZWEncoder.class
    ├── LZWEncoder.java
    ├── NeuQuant.class
    └── NeuQuant.java

5 directories, 31 files

jlz@dell:~/asciimg-master/src/main/java/io/korhner/asciimg$ cd ../../../


jlz@dell:~/asciimg-master/src/main/java$ cp ../../test/java/io/korhner/asciimg/*.java .

jlz@dell:~/asciimg-master/src/main/java$ vi Examples.java

根据文件,得知是读取examples路径下的图片。ascii字符的图片的路径

可以也创建相应目录,把要转换的图片存在这。

jlz@dell:~/asciimg-master/src/main/java$ mkdir examples

jlz@dell:~/asciimg-master/src/main/java$ cp ../../../examples/portrait.png examples/

jlz@dell:~/asciimg-master/src/main/java$ java Examples

这时候,会输出转换好的ascii字符,同时examples文件夹会生成几个不同风格的png 

 

  

 

 

放一下效果:

原图 

 

 

大——均方根误差                                               大——SSIM(结构相似度Structure Similarity )

     

 

中等——均方根误差                                      中等——结构相似度

  

  

小——均方根误差                                        小——结构相似度

  

 

 

 

posted @ 2020-10-01 21:41  chinagod  阅读(409)  评论(0)    收藏  举报