图片转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 )
中等——均方根误差 中等——结构相似度

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

浙公网安备 33010602011771号