#基于NRF52832的墨水屏移植与GUI设计(3)

1 图片文字数据的获取

2 图片的调整

1 图片文字数据的获取

1.1位图

首先,我们选取的图片是位图,也就是bmp格式的图片,什么是位图呢?
百度:位图(Bitmap),又称栅格图(英语:Raster graphics)或点阵图,是使用像素阵列(Pixel-array/Dot-matrix点阵)来表示的图像。位图的像素都分配有特定的位置和颜色值。每个像素的颜色信息由RGB组合或者灰度值表示。
根据位深度,可将位图分为1、4、8、16、24及32位图像等。每个像素使用的信息位数越多,可用的颜色就越多,颜色表现就越逼真,相应的数据量越大。例如,位深度为 1 的像素位图只有两个可能的值(黑色和白色),所以又称为二值位图。位深度为 8 的图像有 2^8(即 256)个可能的值。位深度为 8 的灰度模式图像有 256 个可能的灰色值。
对于墨水屏来说,我们只需要单色的位图即可。对于日常的彩色图片,我们只需要用图画,转化一下图片格式即可。也要在图画上调整图片的尺寸。
在这里插入图片描述 原图
在这里插入图片描述转换后的图片

1.2取模

网上有各种各样的取模软件,我这边使用的是zimo221.exe,(放在下载自取)。
界面如下:
在这里插入图片描述
设置保持默认就好,参数设置可以调整字体类型和取模方式,这里我们选择横向取模

1.2.1取字模

点击新建图像–调整字体大小–输入文字–导入文字–C51取模
字模
数据:
/– 文字: 中 –/
/– 宋体18; 此字体下对应的点阵为:宽x高=24x24 –/
0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x3C,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,
0x38,0x00,0x38,0x38,0x1C,0x3F,0xFF,0xFC,0x18,0x38,0x38,0x18,0x38,0x38,0x18,0x38,
0x38,0x18,0x38,0x38,0x18,0x38,0x38,0x18,0x38,0x38,0x3F,0xFF,0xF8,0x38,0x38,0x38,
0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,
0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,

1.2.2取图片

点击打开图像–选择你要取模的位图–C51取模
4.94.9寸的图片
数据:
/– 调入了一幅图像:C:\Users\Administrator\Desktop\图片\u=1817409632,2630071760&fm=26&gp=0.bmp –/
/– 宽度x高度=400x300 –/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

把取好的数据,放到一个数组,用你写好的的函数显示出来即可。

在这里插入代码片
for(wide=0; wide<250; wide++)							
	{
		for(high=0; high<16; high++)						
		{	
			if(x_start<wide && wide<x_end && y_start<=high && high<=y_end)
  SPI4W_WRITEDATA(data[pcnt++]);
				
				}
		}
	}

data【】存放要显示的数据,图片起始位置直接全屏,字符起始位置,自己算一下,要显示的位置。

2 图片的调整

图片调整好再取模,不然就不能正确显示,会出现乱码,这里也走了很多弯路。
对于2.13寸屏幕:
取模时 wide与high设计122x250可以正常显示(wide>120).!!!取模方式,横向取模!!!
会自动调整尺寸
/– 调入了一幅图像:C:\Users\Administrator\Desktop\0 - 副本.bmp –/
/– 宽度x高度=122x250 –/
/– 宽度不是8的倍数,现调整为:宽度x高度=128x250 –/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,…
这个尺寸就可以正常显示。

对于我们的屏幕,要经历 旋转–左右调换,才能显示位置正确的显示效果。
对于4.9寸的屏幕:
wide与high设计400x300可以正常显示.经历左右调换即可。(4.9和2.13显示方向不同)

显示效果:
在这里插入图片描述
END

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值