一、Image2lcd功能简介
Image2lcd是一款简单易用的图片取模软件,能够将图片按规则转换成只有0和1的机器码,常用于LCD显示屏的取模使用。不知道有没有小伙伴好奇取模这两个字是什么意思,我对取模的理解就是选取模型,模型包含字符模型和图像模型。模型的概念可以联想古代的活字印刷术或着身边的印章,只需将木头雕刻成一个汉字或图形的形状,就可以重复使用。
Image2lcd这款软件专用于图像模型,支持JPG、BMP、EMF、WBMP、GIF、ICO等多种格式图片的输入,可以自动将我们选取的图片以二进制、C语言数组、BMP、WBMP、Sigmate的形式输出出来。根据实际使用需要,可以对图象的扫描模式、输出灰度(颜色)、输出图片大小等参数进行调整。
Image2Lcd V4.0软件
CSDNhttps://download.csdn.net/download/fantastic_sky/13287751?spm=1001.2014.3001.5503
百度云盘,密码:mg7khttps://pan.baidu.com/s/1lCSMOWo_xODS2lk3qZnGvQ
二、Image2lcd使用说明
Image2lcd是一款付费软件,作版权归作者吴柏建所有。未注册版打开图像时,图像中的ALPHA通道数据会被添加一个叉,注册软件后该限制将消失,注册前注意要以管理员的权限打开软件。本次以Image2lcd V4.0版本介绍其相关使用,不同版本功能大同小异。
(1)导入需要转换的图像
(2)调整输出图像的参数
1、输出数据类型
选择选取图片的输出形式,有二进制、C语言数组、BMP、WBMP、Sigmate五种的形式。在单片机系统中,通常使用C语言数组的形式存储和使用字模。
2、扫描模式
位图是由一个个像素点构成的,在此选择水平扫描还是垂直扫描,红框上方图片为简易示意会随着不同的参数选择而相对应地变化以帮助理解。在单片机系统中,通常使用从左至右、自上而下的扫描方式。
3、输出灰度
位图是由一个个像素点构成的,在此选择一个像素点的构成方式。单色模式一个像素点由一个非黑即白的点构成,适合用在单色屏上使用(如淘宝常见的0.96英寸的单色OLED显示屏)。4灰模式区别于非黑即白的单色,引入了灰度的概念,通过改变像素点的透光度(亮度)来显示从最暗黑色到最亮的白色的过度颜色,四灰就是从白到黑有四种颜色。彩色模式引入不同颜色的LED,16位真彩色模式的一个像素点由5个红色LED、6个绿色LED、5个蓝色LED构成,可以显示2^16种颜色。
4、最大宽度和高度
选择输出图像的大小,360*360就表示图像由360*360个像素点组成,注意这个软件输出图片的比例和原图是一致的。原图宽高比是1:1的话,输出比例也是一致的,所以上图中设置成360:480最后实际输出的是360:360(木桶效应),这个从图片最下栏可以看出。
5、字节顺序
切换小端、大端两种字节顺序,小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。
1、恢复缺省值
点击恢复缺省值按钮使输出图像调整参数回到缺省设置,即正常显示、颜色不反转、亮度和对比度等同输入图像。
2、颜色反转
颜色反转单选框被选中后,输出图像的颜色数据被做取反操作。
3、显示方式
右上角的下拉框中列出了四种可选输出图像显示方式:正常显示、左右颠倒、上下颠倒和左右上下颠倒。
4、亮度
拖动亮度滑块调整输出图像的亮度。
5、对比度
拖动对比度滑块调整输出图像的对比度。
(3)设置256色调色板的参数(在输出灰度选择256色时)
1、调色板选择
可选择RGB332调色板、灰度调色板、用户调色板。其中用户调色板是用户指定的调色板文件(TIFF格式)。当前选择的调色板的颜色顺序在下部的色条中被显示。
2、输出图像数据中包含调色板数据
256色图像数据只有配合调色板数据才能正常显示(LCD控制器使用默认的调色板时例外),建议用户选上此项。当LCD控制器支持RGB332格式的8位颜色数据时,选择 RGB332调色板、不选 输出图像数据中包含调色板数据,此时图像数据正好吻合RGB332格式。调色板数据结构见图像头数据结构中的说明。
3、载入调色板
该按钮用来打开一个调色板文件(*.PAL)作为用户调色板。打开的用户调色板文件名将显示在左边的编辑框中。用户也能使用256色的BMP文件(*.BMP)作为调色板文件打开。
4、保存调色板
用来保存当前选择的调色板数据为TIFF格式(*.PAL)文件。
5、调色板直观图
用来直观显示当前选择的调色板的颜色顺序。
(4)设置4096色参数(在输出灰度选择4096色时)
1、恢复缺省值
点击恢复缺省值按钮使调整参数回到缺省设置,即颜色位数为16Bits(WORD),颜色数据排列由高位到低位依此为NULL,Red,Green,Blue(RGB444)。
2、颜色位数
4096色图像数据每一象素使用一个12Bits数据来表示,每4Bits数据记录象素的红绿蓝颜色分量中的一种,还支持两种应用普遍的颜色位数格式,分别是[12bits(连续字节流)]和[16bits(WORD)],其中第二种格式会使WORD中剩余4Bits,称为空白位,空白位在颜色数据排列图中以白色表示。
3、颜色数据排列
4096色图像的一个象素数据从高位到低位的颜色分量排列顺序,可以用鼠标拖动颜色块来改变排列方式。颜色位数为[16bits(WORD)]时,作为WORD型数据,在保存时还将受设置输出图像格式中的“字节顺序”影响。
(5)设置16位彩色数据的参数(在输出灰度选择16位真彩色时)
1、恢复缺省值
点击恢复缺省值按钮使调整参数回到缺省设置,即颜色位数为[R:5bits,G:6bits,B:5bits],颜色数据排列由高位到低位依此为Red,Green,Blue(RGB565)。
2、颜色位数
16位彩色图像数据每一象素使用一个WORD数据来表示,这个WORD数据中记录了象素的红绿蓝三种颜色分量的值,还支持两种应用普遍的颜色位数格式,分别是[R:5bits,G:6bits,B:5bits]和[R:5bits,G:5bits,B:5bits],其中第二种格式会使WORD中剩余一bit,称为空白位,空白位在颜色数据排列图中以白色表示。
3、颜色数据排列
16位彩色一个WORD图像数据从高位到低位的颜色分量排列顺序,可以用鼠标拖动颜色块来改变排列方式。作为WORD型数据,在保存时还将受设置输出图像格式中的“字节顺序”影响。
(6)设置18位彩色数据的参数(在输出灰度选择18位真彩色时)
1、恢复缺省值
点击恢复缺省值按钮使调整参数回到缺省设置,即颜色位数为[B:6bits,G:6bits,R:6bits],空白位为每个字节的高两位,颜色数据排列由高位到低位依此为Blue,Green,Red(BGR666)。
2、颜色位数
18位彩色图像数据每一象素使用3字节数据来表示,这个3字节数据中记录了象素的红绿蓝三种颜色分量的值,即[B:6bits,G:6bits,R:6bits],每种颜色各用1个字节存储。数据存储有两种排列格式,分别为空白位为每个字节的高两位和空白位为每个字节的低两位,空白位在颜色数据排列图中以白色表示。
3、颜色数据排列
18位彩色一个3字节图像数据从高位到低位的颜色分量排列顺序,可以用鼠标拖动颜色块来改变排列方式。作为3字节型数据,在保存时还将受设置输出图像格式中的“字节顺序”影响。
(7)设置24位彩色数据的参数(在输出灰度选择24位真彩色时)
1、恢复缺省值
点击恢复缺省值按钮使调整参数回到缺省设置,即颜色位数为[B:8bits,G:8bits,R:8bits],颜色数据排列由高位到低位依此为Blue,Green,Red(BGR888)。
2、颜色位数
24位彩色图像数据每一象素使用3字节数据来表示,这个3字节数据中记录了象素的红绿蓝三种颜色分量的值,即[B:8bits,G:8bits,R:8bits]。
3、颜色数据排列
24位彩色一个3字节图像数据从高位到低位的颜色分量排列顺序。可以用鼠标拖动颜色块来改变排列方式。在保存时还将受设置输出图像格式中的“字节顺序”影响。
(8)设置32位彩色数据的参数(在输出灰度选择32位真彩色时)
1、恢复缺省值
点击恢复缺省值按钮使调整参数回到缺省设置,即颜色位数为[B:8bits,G:8bits,R:8bits],颜色数据排列由高位到低位依此为Blue,Green,Red,alpha透明通道(BGR888)。
2、颜色位数
32位彩色图像数据每一象素使用4字节数据(DWORD)来表示,这个4字节数据中记录了象素的红绿蓝三种颜色分量的值以及颜色透明度,即[B:8bits,G:8bits,R:8bits]。
3、颜色数据排列
32位彩色一个4字节(DWORD)图像数据从高位到低位的颜色分量排列顺序。可以用鼠标拖动颜色块来改变排列方式。在保存时还将受设置输出图像格式中的“字节顺序”影响。
(9)图像数据转换(大功告成)
点击菜单栏保存按钮,填写输出文件名字,即可生成转换后的图像数组数据存放在被命名的源文件中。
(10)软件相关设置解释(根据需求设置)
1、在资源管理器右键菜单中设置关连菜单:
这一项选中后,在资源管理器中的图像文件名上点击右键后出现的菜单中添加一项“Image2Lcd”。选中该项将启动软件打开该图像文件。
2、保存为(*.C)文件后使用记事本打开:
在输出数据类型为“C语言数组(*.C)”时, 在保存输出数据后,输出数据文件使用记事本打开显示。
三、Image2lcd输出的数组数据解释
1、图像头数据(对转换图像参数的描述,占数组前8字节):
第1个字节表示图像扫描方式,低四位为0水平扫描,为1垂直扫描。
第2字节表示图像输出灰度模式,0x04--16灰 0x10--16真彩色 0x18--24真彩色 0x20--32真彩色
第3~4字节表示图像宽度
第5~6字节表示图像高度
2、输出测试:
原图大小为500*500(.jpg格式),选择16位真彩色模式,水平扫描,自左至右,自上而下,小端模式,输出50*50 C语言数组数据。
输出数据如下:
const unsigned char gImage_image[5008] = { 0X10,0X10,0X00,0X32,0X00,0X32,0X01,0X1B,
0X41,0X84,0X41,0X84,0X31,0X23,0X31,0X03,0X39,0X23,0X39,0X44,0X31,0X03,0X29,0X02,
0X31,0X23,0X39,0X64,0X39,0X44,0X31,0X23,0X39,0X44,0X39,0X44,0X31,0X43,0X39,0X44,
0X31,0X43,0X31,0X23,0X31,0X23,0X20,0XA1,0X31,0X23,0X41,0X85,0X39,0X44,0X39,0X43,
0X31,0X23,0X31,0X23,0X31,0X23,0X29,0X03,0X28,0XE3,0X29,0X02,0X28,0XE2,0X20,0X81,
0X28,0XE2,0X28,0XE2,0X28,0XC2,0X28,0XE2,0X28,0XE2,0X29,0X03,0X28,0XE2,0X28,0XC2,
0X20,0XC1,0X18,0XC1,0X20,0XC2,0X20,0XC2,0X28,0XE2,0X31,0X23,0X28,0XE2,0X28,0XE2,
0X20,0X81,0X20,0XA2,0X41,0XA4,0X41,0X84,0X31,0X23,0X39,0X44,0X39,0X23,0X39,0X44,
0X31,0X23,0X28,0XE2,0X31,0X23,0X31,0X43,0X39,0X44,0X31,0X23,0X39,0X64,0X39,0X64,
.........................数据过长,省略一部分展示数据...................
0X08,0X40,0X08,0X00,0XAD,0X56,0XDE,0XDC,0XDE,0XDB,0XDE,0XBB,0XDE,0XDC,0XDE,0XBB,
0XBD,0XD7,0XBD,0XD7,0XB5,0X97,0XAD,0X76,0XB5,0X97,0XDE,0XDB,0XDE,0XDB,0XDE,0XFC,
0XDE,0XDC,0XDE,0XBB,0XBD,0XB7,0XBD,0XD8,0XBD,0XB7,0XBD,0XD7,0XD6,0X7A,0XDE,0XDB,
0XDE,0XBB,0XDE,0X9B,0XD6,0X9B,0XAD,0X76,0XB5,0X96,0XB5,0X76,0XA5,0X15,0XC6,0X39,
0XD6,0X9B,0XD6,0X5A,0XD6,0X7A,0XCE,0X39,0XB5,0X75,0XAD,0X75,0XAD,0X75,0XAD,0X75,
0XD6,0XBA,0XD6,0X9A,0XCE,0X38,0XCE,0X39,0X94,0X92,0X7B,0XAE,0X52,0X8A,0X31,0X65,
0X29,0X44,0X20,0XE3,0X10,0X61,0X08,0X20,};
根据输出头数据0X10,0X10,0X00,0X32,0X00,0X32,0X01,0X1B反向推算,
gImage_image[0]==0X10,低四位为0--->印证水平扫描
gImage_image[1]==0X10,低四位为0--->印证16位真彩色
gImage_image[2]<<8|Byte[3]==0X32(50D)--->印证宽度为50像素(小端模式)
gImage_image<<8|Byte[5]==0X32(50D)--->印证高度为50像素(小端模式)
gImage_image[5008]--->印证数据长度为8字节图像头数据+50*50*2(宽*高*16位模式)