最近在做一款激光扫地机地图,期间遇到了很多问题,在此做个记录,基本效果如下:
主要涉及到:
1、十六进制点阵转位图。
这部是绘制地图的关键,主要实现如下:
NSData *newData = [NSData dataWithBytes:dstBuffer length:decompressLen];
Byte *newByte = (Byte *)newData.bytes;
char* rgba = (char*)malloc(width*height*4);
int offset=0;
for(int i = 0; i < height; ++i)
{
for (int j = 0; j < width; j++)
{
int dotValue = newByte[(height-1-i)*width+j];
if (dotValue == 127) {//地图背景
CGFloat cmp[3];
[self dc_getRGBComponents:cmp forColor:self->_bgColor];
rgba[4*offset] = cmp[0] * kColor;
rgba[4*offset+1] = cmp[1] * kColor;
rgba[4*offset+2] = cmp[2] * kColor;