• 大小: 918KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-17
  • 语言: 其他
  • 标签: 字符叠加  YUV420  RGB  

资源简介

在YUV420格式上实现字符叠程序加及YUV420转RGB程序,已实现

资源截图

代码片段和文件信息

char* draw_Font_Func(unsigned char *ptr_frame const char *strint startxint startyint colorint length)//ptr_frame为YUV420格式字符数组,str为叠加的字符串,startx、starty为要叠加的位置,length为叠加字符的长度
            {

                //assert( ptr_frame != NULL );

                int tagY=0tagU=0tagV=0;
                unsigned char *offsetY=NULL*offsetU=NULL*offsetV=NULL;
                unsigned short p16 mask16; // for reading hzk16 dots

                //yuv 地址的设置
                offsetY = ptr_frame;
                offsetU = offsetY + WIDTH * HEIGHT;
                offsetV = offsetU + WIDTH * HEIGHT/4;
                const  char *p = str;

                switch (color)
                {
                    case 0:         // Yellow
                        tagY = 226;tagU = 0;tagV = 149;
                        break;
                    case 1:         // Red
                        tagY = 76;tagU = 85;tagV = 255;
                        break;
                    case 2:         // Green
                        tagY = 150;tagU = 44;tagV = 21;
                        break;
                    case 3:         // Blue
                        tagY = 29;tagU = 255;tagV = 107;
                        break;
                    default:        // White
                        tagY = 128;tagU = 128;tagV = 128;
                }

                int x=0y=0i=1j=0k=0;
                for(i = 0; i < length ;i++)
                {

                    //for (j = 0 y = starty; j < 16 && y < HEIGHT - 1; j++ y+=2)    // line dots per char
                    for (j = 0 y = starty; j < 16 && y < HEIGHT - 1; j++ y+=2)
                    {
                        p16 = (unsigned short )table[(*p-32)*16+j];
                        mask16 = 0x0080;  // 二进制 1000 0000
                        //for (k = 0 x = startx +i*32; k < 16 && x < WIDTH - 1; k++ x+=2)   // dots in a line
                        for (k = 0 x = startx +i*16; k < 8 && x < WIDTH - 1; k++ x+=2)
                        {
                            if (p16 & mask16)
                            {
                                *(offsetY + y*WIDTH + x) = *(offsetY + y*WIDTH + x+1) = tagY;
                                *(offsetY + (y+1)*WIDTH + x) = *(offsetY + (y+1)*WIDTH + x+1) = tagY;
                                *(offsetU + y * WIDTH/4 + x/2) =tagU;
                                *(offsetV + y * WIDTH/4 + x/2) = tagV;
                            }
                            mask16 = mask16 >> 1;  //循环移位取数据
                            if (mask16 == 0)
                                mask16 = 0x8000;
                        }
                    }
                    p++;

                   /* for (j = 0 y = starty; j < 16 && y < HEIGHT - 1; j++ y++) // line dots per char
                    {
                        p16 = *(unsigned short *)(font + j*2 + i*32);/*取字模数据/
                        mask16 = 0x0080;  /* 二进制 1000 0000

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        9535  2015-01-28 13:09  yuv420toRGB及字符叠加\font_table.h
     文件        5944  2015-01-28 13:53  yuv420toRGB及字符叠加\osd_yuv420torgb.c
     目录           0  2012-11-23 10:05  yuv420toRGB及字符叠加\PCtoLCD2002\
     文件           8  2015-01-28 10:39  yuv420toRGB及字符叠加\PCtoLCD2002\_index.TXT
     文件         130  2002-05-11 12:05  yuv420toRGB及字符叠加\PCtoLCD2002\ASC.PTL
     文件       18092  2002-05-15 15:31  yuv420toRGB及字符叠加\PCtoLCD2002\Gb2312.PTL
     文件        2122  2002-05-12 00:14  yuv420toRGB及字符叠加\PCtoLCD2002\notice.txt
     文件      310272  2002-05-11 19:53  yuv420toRGB及字符叠加\PCtoLCD2002\PCtoLCD2002.exe
     文件         299  2015-01-28 12:42  yuv420toRGB及字符叠加\PCtoLCD2002\PCtoLCD2002.INI
     文件        1364  2012-11-26 15:22  yuv420toRGB及字符叠加\PCtoLCD2002\PCtoLCD2002完美版下载 _汉字字模生成软件 - pc6下载站.url
     文件        4427  2002-05-12 00:13  yuv420toRGB及字符叠加\PCtoLCD2002\readme2002.txt
     文件      676352  2002-02-01 22:00  yuv420toRGB及字符叠加\PCtoLCD2002\RTL60.BPL
     文件     1326080  2002-02-01 22:00  yuv420toRGB及字符叠加\PCtoLCD2002\VCL60.BPL

评论

共有 条评论