TFT屏取点阵数据思路(图片取模数据)

s32 devLcdDispHxLogo(u32 uiX, u32 uiY, u8 *pucLogoBitmap, u32 uiLogoWidth,
						u32 uiLogoHeight)
{
	s32 iRet = 0;
	u32 i, j, k;
	u8 ucBitMask[] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
	do
	{
		if((pucLogoBitmap == NULL) || (uiLogoWidth % 8))
		{
			iRet = SDK_PARAMERR;
		}

		for (j = 0; j < uiLogoHeight; j++)
		{
			for (i = 0; i < uiLogoWidth/8; i++)
			{
				for (k = 0; k < 8; k++)
				{
					if (pucLogoBitmap[j * uiLogoWidth/8 + i] & ucBitMask[k])
					{
						devBWSetPixel(uiX+i*8+k, uiY+j, 1);
					}
					else
					{
						devBWSetPixel(uiX+i*8+k, uiY+j, 0);
					}
				}
			}

		}
		devLcdBrushArea(uiX, uiY, (uiX+uiLogoWidth-1), (uiY+uiLogoHeight-1));
		iRet = SDK_OK;

	}while(0);
	return iRet;
}

//x坐标,y坐标,图片取模数据,图片宽,高(单位:像素点)
void DispVerticalBitmap(u32 uiX, u32 uiY, u8 *pucBitmap, u32 uiWidth, u32 uiHeight)
{
	u32 i, j, k;
	u8 ucBitMask[] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

	// 宽度
	for(i = 0; i < uiWidth; i++)
	{
		// 高度
		for(j = 0; j < uiHeight/8; j++)
		{
			// 点
			for(k = 0; k < 8; k++)
			{
				if (pucBitmap[j * uiWidth + i] & ucBitMask[k])
				{
					devBWSetPixel(uiX+i, uiY+j*8+k, 1);
				}
				else
				{
					devBWSetPixel(uiX+i, uiY+j*8+k, 0);
				}
			}
		}

		//剩余非8倍数 行显示
		if (uiHeight % 8)
		{
			// 点
			for(k = 0; k < uiHeight % 8; k++)
			{
				if (pucBitmap[j * uiWidth + i] & ucBitMask[k])
				{
					devBWSetPixel(uiX+i, uiY+j*8+k, 1);
				}
				else
				{
					devBWSetPixel(uiX+i, uiY+j*8+k, 0);
				}
			}
		}

	}
	devLcdBrushArea(uiX, uiY, (uiX+uiWidth-1), (uiY+uiHeight-1));
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值