Welcome to PictureToCode project.
First : Picture to cmd code.
第一个出场的是:图片在cmd中显示
At first , please see the effect :
首先上个效果图,这很重要。
在CMD里显示图片会比较大,一般的显示屏一次显示不完,因为没有那么大的分辨率,我是1920*1080的分辨率,仍无法一次性将图片显示完整,所以下面这张效果图(巴黎铁塔)是经过我将多张图处理在一起的。
这张效果图原图大小1920*2554px,于是我缩小了它,如果想查看原图,请右键图片并选择“查看图像”。
在cmd显示的效果(宽度有缩减)
| 原图像(来自网络)
|
| |
没错,在cmd中它看起来失真了,但是这没关系,因为cmd能实现这已经很不错,不过我只是支持了灰、白、红、绿、蓝、粉、青八种颜色,如果各位有兴趣能继续扩展的话,它会变得更好。
这是如何实现的呢?
这个PictureToCMDCode程序便是我们的项目产物——它会帮助您把图片转换为C语言代码以便您编译,然后您就可以编译它生成的代码文件,运行起来……您就可以看到在cmd中生成出来的图片了。
主要原理就是:读取图片的每一个点(或者不是每一个点,有可能是一个一个区块地读取)的颜色,判断其色值接近我们所支持的八种颜色中的哪一种,来确定生成的C代码中让程序显示什么颜色。
如果不需要颜色,而是以灰度的模式呈现——那更简单,图片转灰度图,判断其灰度属于哪个灰度层次,以用不同的字符代替其颜色。
我们先看看更多的效果吧(右键图片,选择“查看图像”来查看大图):
灰度图像:VS标志(10色)
灰度图像:湖边的塔(2色)(下面还会有“湖边的塔”的不同版本,原图不再赘述)
灰度图像:湖边的塔,26色
灰度图像:湖边的塔,93色
灰度图像:树,256色,试验版
巴黎铁塔2-93色不同版本(此图建议查看大图):
效果已经见证,项目文件下载链接:
PictureTo_CMD_Code.zip
使用方法:
项目压缩包解压后有两个说明文件在根目录:
请君必阅此二文件。
还有一个技巧:将cmd字体设置到最小,为3*5,可以得到更好的视觉体验。如果是玩灰度模式,也可以自定义略缩比例为当前cmd字体大小,这样就不会感到图片拉伸了,但是如果是开启了颜色模式,请务必选择“生成不缩略的大图像”。
注意:
release文件夹下的Vers文件夹中存放了这个项目的两个版本:
在程序目录下的Data文件夹中存放了用于存放灰度层次的字符表:
里面有个Perset文件夹,是预设的字符表,如图
预设了2~256色(128和256色用的是中文,是测试性的,可能兼容不太好)的字符表,具体要怎么做,请看WhatShouldIDo.txt。
如果想用某个颜色的字符表,将其复制到Data文件夹下(和Perset文件夹同级),并改名为ColorDepth.ini即可
如果没有这么做,Data文件夹下默认是没有字符表的,程序生成出来的代码编译出来的程序显示出来的字符将会都是“E”,当然,如果你选择了色彩模式,那色彩还是可以正常显示的。
建议使用93色,色调比较饱满,但是如果编译时好像出现了一些问题,那么就用26色吧。
具体怎么用,请看项目文件中的readme说明书,此处不再赘述。
Second : Picture to EasyX code.
第二个:图片转为基于EasyX库的纯点绘图像
看看效果(左:程序生成;右:原图):
是不是感觉一模一样?但是左边的程序是点绘的图片,也就是说:
咳咳,应该懂了吧,就是一个变量存储整个图片的信息。但是这个方法有点问题,就是:如果图片太大,程序运行时有可能会爆栈。
之所以用一个变量来保存是为了节省行数,是因为如果行数太多,或许编辑器一打开就死了。如果对行数不介意,请使用Ver1.0,这样没有爆栈风险。
主要使用方法还是看readme.txt吧,项目下载链接:
PictureTo_EasyX_Code.zip
程序运行截图: