huidong

首页 | 会员登录 | 关于争取 2022 寒假做出汇东网 Ver3.0.0 !
搜索文章


Welcome to PictureToCode project.


First : Picture to cmd code.


第一个出场的是:图片在cmd中显示


At first , please see the effect :

首先上个效果图,这很重要。


在CMD里显示图片会比较大,一般的显示屏一次显示不完,因为没有那么大的分辨率,我是1920*1080的分辨率,仍无法一次性将图片显示完整,所以下面这张效果图(巴黎铁塔)是经过我将多张图处理在一起的。

这张效果图原图大小1920*2554px,于是我缩小了它,如果想查看原图,请右键图片并选择“查看图像”。


在cmd显示的效果(宽度有缩减)
原图像(来自网络)
tower.pngimg_BaliTower.jpg

tower.png



没错,在cmd中它看起来失真了,但是这没关系,因为cmd能实现这已经很不错,不过我只是支持了灰、白、红、绿、蓝、粉、青八种颜色,如果各位有兴趣能继续扩展的话,它会变得更好。


这是如何实现的呢?

图片.png

图片.png


这个PictureToCMDCode程序便是我们的项目产物——它会帮助您把图片转换为C语言代码以便您编译,然后您就可以编译它生成的代码文件,运行起来……您就可以看到在cmd中生成出来的图片了。


主要原理就是:读取图片的每一个点(或者不是每一个点,有可能是一个一个区块地读取)的颜色,判断其色值接近我们所支持的八种颜色中的哪一种,来确定生成的C代码中让程序显示什么颜色。


如果不需要颜色,而是以灰度的模式呈现——那更简单,图片转灰度图,判断其灰度属于哪个灰度层次,以用不同的字符代替其颜色。


我们先看看更多的效果吧(右键图片,选择“查看图像”来查看大图):


灰度图像:VS标志(10色)

1589546680562683.jpg


灰度图像:湖边的塔(2色)(下面还会有“湖边的塔”的不同版本,原图不再赘述)

img_tower.jpg


灰度图像:湖边的塔,26色



灰度图像:湖边的塔,93色


灰度图像:树,256色,试验版



巴黎铁塔2-93色不同版本(此图建议查看大图)

}_$F4G3H_SX{HA%4CXTVDK7.jpg


效果已经见证,项目文件下载链接:


PictureTo_CMD_Code.zip



使用方法:

项目压缩包解压后有两个说明文件在根目录:

图片.png

请君必阅此二文件。


还有一个技巧:将cmd字体设置到最小,为3*5,可以得到更好的视觉体验。如果是玩灰度模式,也可以自定义略缩比例为当前cmd字体大小,这样就不会感到图片拉伸了,但是如果是开启了颜色模式,请务必选择“生成不缩略的大图像”。


注意:

release文件夹下的Vers文件夹中存放了这个项目的两个版本:

图片.png图片.png

在程序目录下的Data文件夹中存放了用于存放灰度层次的字符表:

图片.png

里面有个Perset文件夹,是预设的字符表,如图

图片.png图片.png

预设了2~256色(128和256色用的是中文,是测试性的,可能兼容不太好)的字符表,具体要怎么做,请看WhatShouldIDo.txt。


如果想用某个颜色的字符表,将其复制到Data文件夹下(和Perset文件夹同级),并改名为ColorDepth.ini即可

如果没有这么做,Data文件夹下默认是没有字符表的,程序生成出来的代码编译出来的程序显示出来的字符将会都是“E”,当然,如果你选择了色彩模式,那色彩还是可以正常显示的。


建议使用93色,色调比较饱满,但是如果编译时好像出现了一些问题,那么就用26色吧。


具体怎么用,请看项目文件中的readme说明书,此处不再赘述。


Second : Picture to EasyX code.


第二个:图片转为基于EasyX库的纯点绘图像


看看效果(左:程序生成;右:原图):

1589549501101830.png

是不是感觉一模一样?但是左边的程序是点绘的图片,也就是说:

图片.png


咳咳,应该懂了吧,就是一个变量存储整个图片的信息。但是这个方法有点问题,就是:如果图片太大,程序运行时有可能会爆栈。

之所以用一个变量来保存是为了节省行数,是因为如果行数太多,或许编辑器一打开就死了。如果对行数不介意,请使用Ver1.0,这样没有爆栈风险。


主要使用方法还是看readme.txt吧,项目下载链接:


PictureTo_EasyX_Code.zip


程序运行截图:


图片.png




返回首页


Copyright (C) 2018-2022 huidong