6.10 字节逆序

 

 

 
  1. /*
        p:需要逆置的数据地址
        len:需要逆置的数据长度
    */
    void byte_cov(unsigned char *p,unsigned long len)
    {
        unsigned long i;
        unsigned char tem;
        for (i=0;i<len;i++)
        {
            tem=p[i];
            p[i]=((tem & 0x01)<<7)|((tem & 0x02)<<5)|((tem & 0x04)<<3)|((tem & 0x08)<<1)  \
                |((tem & 0x10)>>1)|((tem & 0x20)>>3)|((tem & 0x40)>>5)|((tem & 0x80)>>7);
        }
    }
    
    /**
     * @brief Y排置字体镜像
     * dz_data:字形数据
     * len:数据长度
     */
    void y_mirror(unsigned char *dz_data, unsigned long len)
    {
    #if 0
        unsigned long i;
        unsigned char tem;
    
        for (i = 0; i < len; i++)
        {
            tem = dz_data[i];
            dz_data[i] = dz_data[len - i - 1];
            dz_data[len - i - 1] = tem;
        }
    #else
        unsigned long i, mid;
        unsigned char tem;
    
        mid = len >> 1;
    
        for (i = 0; i < mid; i++)
        {
            tem = dz_data[i];
            dz_data[i] = dz_data[mid - 1 - i];
            dz_data[mid - 1 - i] = tem;
        }
    
        for (i = mid; i < len; i++)
        {
            tem = dz_data[i];
            dz_data[i] = dz_data[len - 1 - i];
            dz_data[len - 1 - i] = tem;
        }
    
        for (i = 0; i < mid; i++)
        {
            tem = dz_data[i];
            dz_data[i] = dz_data[mid + i];
            dz_data[mid + i] = tem;
        }
    #endif
    }
    
    
    /**
     * @brief Y排置字体镜像
     * dz_data:字形数据
     * len:数据长度
     */
    void y_mirror(unsigned char *dz_data, unsigned long len)
    {
        unsigned long i, mid;
        unsigned char tem;
    
        mid = len >> 1;
    
        for (i = 0; i < mid; i++)
        {
            tem = dz_data[i];
            dz_data[i] = dz_data[mid - 1 - i];
            dz_data[mid - 1 - i] = tem;
        }
    
        for (i = mid; i < len; i++)
        {
            tem = dz_data[i];
            dz_data[i] = dz_data[len - 1 - i];
            dz_data[len - 1 - i] = tem;
        }
    
        for (i = 0; i < mid; i++)
        {
            tem = dz_data[i];
            dz_data[i] = dz_data[mid + i];
            dz_data[mid + i] = tem;
        }
    }
    

     

上一页:横竖转换
    • 联系电话

    • 0755—83453881
    • 服务时间

    • 周一至周五 9:00-18:00
    • 高通GT-HMI交流群