关于liunx下7寸LCD显示比利时国旗代码编写

我想在LCD屏幕中显示比利时国旗,但是我怎么改色条都是打横(如题),怎样才能让其打横图片说明
代码如下

#include"myhead.h"
int main()
{
    //打开LCD设备驱动文件
    int lcd_fd =  open("/dev/fb0",O_RDWR);
    if(lcd_fd == -1)
    {
        perror("open lcd failled");
        return 0;
    }
    //自定义每个像素点的某个字节的颜色
    char B = 0;//透明度·
    char G = 255;//红色
    char R = 255;//绿色
    char A = 255;//蓝色

    char buf[800*480*4] = {0};
    int i;

    for(i=0;i<800*160*4;i+=4)
    {

        buf[i+1] = R; 

    }
    for(i=0;i<800*320*4;i+=4)
    {

        buf[i+2] = G; 

    }
    for(i=0;i<800*480*4;i+=4)
    {

        buf[i+3] = B; 

    }

    //将像素点写入LCD
    write(lcd_fd,buf,sizeof(buf));

    //关闭文件
    close(lcd_fd);
    return 0;


}
    for(i=0;i<800*600*4;i+=4)
    {
x = i / 4 / 800;
if (x < 400)
        buf[i+1] = R; 
if (x < 200)
        buf[i+2] = G; 
 buf[i+3] = B; 
    }