中文OSD显示机制
来源:互联网 发布:java算法实例 编辑:程序博客网 时间:2024/06/05 07:34
在IP摄像机的实时视频流上面打上摄像机名称,公司logo和时间戳,就要用到OSD功能。
GM8126有四个osd win,在每个osd win中,支持的font是12x18点阵,32个char。
在这种条件下,如何实现下述功能:
1、OSD如何显示64个英文字母及+-/*:空格在内的字符组成的英文overlay。
2、如何让英文overlay大一点,12x16字体有点小。
3、如何分二行,三行显示overlay。
4、如何显示中文?中文的字体用24x24字库。
5、中文和英语用不同的字库,如何实现。
6、中文分两行显示。
上面的需求都可以实现,关键设计要点:
1、点阵动态加载,要显示的才加载入osd显存。
2、用2个或4个win来拼装显示bigger En or Zh。
3、既然有4个win,最多可以有4行。
4、动态生成字符点阵驱动,这样显示中文,英文或是任何一个图片都是可能的。
拼装一个24x24汉字关键算法:
ret=fread(&font, 1,96, fp); //读入这个汉字的点阵驱动,可以是根据汉字GM2312/BIG5字库来动态生成的。
if(ret != 96)
{
printf("Font corrupt!\n");ret=-3;break;
}
//win0显示汉字上面2个char
FontZhUpTable[FontUpCnt].font = ZhFontUpIndex; //生成汉字的index
memcpy(&FontZhUpTable[FontUpCnt].fbitmap[8],&font[0],24); //载入osd显存, win0
pWinUp[FontUpCnt]=ZhFontUpIndex; //要显示的char的index
FontUpCnt++;ZhFontUpIndex++;gFontCntAll++;
FontZhUpTable[FontUpCnt].font = ZhFontUpIndex; //一个汉字由4个char组成,所以index要不同
memcpy(&FontZhUpTable[FontUpCnt].fbitmap[8],&font[24],24); //载入osd win0
pWinUp[FontUpCnt]=ZhFontUpIndex;
FontUpCnt++;ZhFontUpIndex++;gFontCntAll++;
//win2显示汉字下面2个char
FontZhDnTable[FontDnCnt].font = ZhFontDnIndex;
memcpy(&FontZhUpTable[FontDnCnt].fbitmap[8],&font[48],24); //osd win2
pWinDn[FontDnCnt]=ZhFontDnIndex;
FontDnCnt++;ZhFontDnIndex++;gFontCntAll++;
FontZhDnTable[FontDnCnt].font = ZhFontDnIndex;
memcpy(&FontZhUpTable[FontDnCnt].fbitmap[8],&font[72],24); //osd win2
pWinDn[FontDnCnt]=ZhFontDnIndex;
FontDnCnt++;ZhFontDnIndex++;gFontCntAll++;
if (FontUpCnt>=OSD_4WIN_LEN) //continue to use win1&3,如果要显示的overlay比较长的话!
{
pWinUp=gZhTextWin1[ucStreamId];FontUpCnt=0;
pWinDn=gZhTextWin3[ucStreamId];FontDnCnt=0;
continue;
}
if (gFontCntAll>=OSD_2WIN_LEN)
{
ret=2;goto End;
}
- 中文OSD显示机制
- 中文OSD显示机制
- DM36x IPNC OSD显示中文 --- 基础知识篇
- DM36x IPNC OSD显示中文 --- 实战篇
- DM36x IPNC OSD显示中文 --- 基础知识篇
- DM36x IPNC OSD显示中文 --- 实战篇
- 中文OSD
- DLP OSD Design中中文字符显示不正常
- DM36x IPNC OSD显示中文 --- 基本数据准备篇
- DM36x IPNC OSD显示中文 --- 基本数据准备篇
- VLC实现中文OSD
- OSD显示原理
- dm368 swosd 中文osd叠加
- OSD
- OSD
- OSD
- Ubuntu12.04歌词显示osd-lyrics
- 在ubuntu桌面上显示歌词 - OSD Lyrics
- Android应用程序的Activity启动过程
- 我的成长篇
- Hadoop入门进阶课程 目录
- 安装spark集群详细介绍
- JavaSwing也惊艳之一:水晶之恋
- 中文OSD显示机制
- 根文件系统 编辑 http://baike.baidu.com/link?url=LzxNeeT7z7WnA6NCLzWSMHm_Z_8U-tcQouhTFCEk2UyyXloxHwMdNYAR87
- 让PowerShell2.0运行在.Net 4.0最简单的方法
- ubuntu14.04下MYSQL显示中文乱码问题解决方法
- 深入剖析tomcat之servlet容器
- 绘制六芒星战斗力属性图 —— h5 canvas 初体验
- 2015_09_01_暑假集训结束_第一次省赛
- iOS调试——断点
- Android fill_parent、wrap_content和match_parent的区别