在上一篇博客里我用Java创建了一个简单的Ascii 字符画生成器(可以从GitHub上获取), 文章发布之后我收到了很多反馈。所以今天我打算继续在这个项目上添加一些新特性,期待能受到更多欢迎。我重新设计了核心部分,目的是增加扩展性以便测试不同的算法以及产生多样化的结果。 在本文中,我会展示本项目的全新架构,方便您整合进自己的项目中以及根据需要进行扩展。
架构
AsciiImgCache
在任何ascii字符渲染发生前,我们需要创建一个此类的实例。 它需要一个字体和字符列表作为参数,然后它将为每个字符生成一个图片的Map。如果你嫌麻烦,也有默认的字符列表提你选择。
提供给对此感兴趣的读者:
private static final char[] defaultCharacters =
"$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~<>i!lI;:,\"^`'. "
示例
// use only '/' '\' and ' '
AsciiImgCache mediumBlackAndWhiteCache = AsciiImgCache.
create(new Font("Courier", Font.BOLD, 10), new char[] {'\\', ' &#