打印

图片显示问题请教

[复制链接]
1388|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dsoyy|  楼主 | 2009-9-20 10:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dsoyy 于 2009-9-20 10:54 编辑

原版: 开辟2个静态数组,读取2幅图片的2个文件,存于其中,之后显示。
改版:开辟一个较大动态数组,将2幅图片接连存储于其中
问题: 可以接连存储,但是第二幅显示不正确,感觉没有从正确的地址读取出第二幅图片存储的数据。

详细说明:
开辟一个很大的动态内存(200K):
LB_Memory = (INT8U *)malloc(sizeof(INT8U) * LB_MAX_MEMORY);
连续读2个图片文件:图片1和图片2,将读取到得数据存储到LB_Memory 连续的内存空间:
Read_pic(LB_Name_Back_Pic,LB_Memory );
Read_pic(LB_head_File,LB_Memory + Read_num );
(第一个参数为图片文件名,第二个参数为图片文件存储空间首地址,Read_num为上次读取到得字节长度)
如上连续2次读取,可以将数据存储到分别以LB_Memory和LB_Memory + Read_num  地址开始的内存空间,2幅图片的存储时连续的。
之后我连续显示2幅图片,发现存储于LB_Memory + Read_num地址的图片显示不正确(没有得到我预期得到的数据)

Dis_icon(0,LB_Memory ,0 ,0, 35,127);
Dis_icon(Read_num  ,LB_Memory ,0,0,480,26);

//以下为显示源码
void Dis_icon(uint32 no,INT8U *str,uint32 startx,uint32 starty,uint32 endx,uint32 endy)
{  
uint32  x, y;
    uint16  dat;
   
    AMP506_WindowSet(startx,starty,endx,endy);//AMP506_WindowSet(100,0,  190,  80);
    FD506_DisplayRAM_WriteEnable;
   

    for(y = starty; y < endy; y ++)
    {  
     for(x = startx; x <  endx; x ++)
       {  
    dat = (str[no + 1] << 8) | str[no];
          TftSendDat(dat);
          no ++;
          no ++;         
       }
   }
     
   FD506_DisplayRAM_WriteDisable;
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

144

主题

566

帖子

3

粉丝