xiaonanko

xiaonanko

0个粉丝

33

问答

0

专栏

0

资料

xiaonanko  发布于  2016-06-28 12:11:24
采纳率 0%
33个问答
6179

OSD 显示是全黑 问题

 
本帖最后由 xiaonanko 于 2016-6-28 16:26 编辑

用的SDL+freetype+SDL_TTF 三个库做视频OSD
参考了论坛上关于OSD的帖子,但是出来的结果有点问题。
//转码代码--代码很常见
    TTF_Font *font;  
    SDL_Surface *text;  
  
     /* Initialize the TTF library */  
     if ( TTF_Init() < 0 ) {  
         fprintf(stderr, "Couldn't initialize TTF: %s\n",SDL_GetError());  
         SDL_Quit();  
         return(2);  
     }  
  
  
    font = TTF_OpenFont("cu.ttf", 48);   //打开字体文件以48号大小
    if ( font == NULL ) {  
        fprintf(stderr, "Couldn't load %d pt font from %s: %s\n",  
                    "ptsize", 18, SDL_GetError());  
    }  
  
    //  TTF_SetFontStyle(font, 0);                          //字体风格
    //  TTF_SetFontOutline(font, 0);                          //字体粗细
    //  TTF_SetFontKerning(font, 1);                          //设置字距
    //  TTF_SetFontHinting(font, 0);                     //设置字体颜色
    //  SDL_Color forecol=     { 0xFF, 0xFF, 0xFF, 0 };  
    SDL_Color forecol=   { 0x00, 0x00, 0x00, 0 };  
    char *string="1992.07.20";  
    text = TTF_RenderUTF8_Solid(font, string, forecol);   //转换位图
    SDL_PixelFormat *fmt; //pixel format information strcut
    fmt = (SDL_PixelFormat*)malloc(sizeof(SDL_PixelFormat));
    memset(fmt,0,sizeof(SDL_PixelFormat));
    fmt->BitsPerPixel = 16;
    fmt->BytesPerPixel = 2;
    fmt->Rmask = 0xff000000;          //ARGB1555
    fmt->Gmask = 0x0000ff00;
    fmt->Bmask = 0x000000ff;
    fmt->Amask = 0x000000ff;
    fmt->colorkey = 0xffffffff;
    sfmt->alpha = 0xff;
    SDL_Surface *temp = SDL_ConvertSurface(text,fmt,0);
    //SDL_LoadBMP  
    SDL_SaveBMP(text, "1.bmp");
    SDL_SaveBMP(temp, "mm.bmp");  
    SDL_FreeSurface(temp);
    SDL_FreeSurface(text);  
    TTF_CloseFont(font);  
    TTF_Quit();  
////////////////////////////////////////////////////
Q(1)代码里面的fmt参数感觉不知道如何设置,出来的图片的背景不知道如何设置!之前参考别人的设置得到过蓝色背景黑色字体,但是绝大部分的掩码设置都是对应的全黑色的背景,字体根本看不见
Q(2)OSD区域大小如何和bmp图片大小匹配呢,如果我把region设置的太小,load函数里面的stride大小和图片大小不一样,会报错。


我来回答
回答6个
时间排序
认可量排序

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-06-28 14:12:26
认可0
fmt->colorkey = 0xffffffff;
fmt->alpha = 0xff;

你修改一下,让自体先能看出来呀。0xff不行就尝试0x0呀

///////////1.bmp现在应该正常吧,你调整一下上面过2个参数,看mm.bmp能否出文字。

xiaonanko

0个粉丝

33

问答

0

专栏

0

资料

xiaonanko 2016-06-28 17:09:31
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=32638&ptid=11764]ngswfx 发表于 2016-6-28 14:12[/url]
fmt->colorkey = 0xffffffff;
fmt->alpha = 0xff;

[/quote]

还是不对~{:3_47:}

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-06-28 17:16:14
认可0
本帖最后由 ngswfx 于 2016-6-28 17:31 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=32681&ptid=11764]xiaonanko 发表于 2016-6-28 17:09[/url]
还是不对~[/quote]

SDL_Color forecol=   { 0x00, 0x00, 0x00, 0 };  

这一句是啥意思,是字体颜色,还是背景颜色。

另外1.bmp,如果能看到文字,背景和文字分别是什么颜色。从你的流程上看,必须让1.bmp看到东西,最好是黑底白字。

xiaonanko

0个粉丝

33

问答

0

专栏

0

资料

xiaonanko 2016-06-28 17:29:02
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=32684&ptid=11764]ngswfx 发表于 2016-6-28 17:16[/url]
SDL_Color forecol=   { 0x00, 0x00, 0x00, 0 };  

这一句是啥意思,是自体颜色,还是背景颜色。
[/quote]

//The color to render the text in. This becomes colormap index 1.
应该是文本的颜色
我的1.bmp是正常的,是白色背景,黑色字体颜色。
但是一转换就成全黑色了~
不知道如何设置转换后的背景和字体颜色

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-06-28 17:31:13
认可0
本帖最后由 ngswfx 于 2016-6-28 17:35 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=32687&ptid=11764]xiaonanko 发表于 2016-6-28 17:29[/url]
//The color to render the text in. This becomes colormap index 1.
应该是文本的颜色
我的1.bmp是正 ...[/quote]

先想办法把1.bmp变成黑低,白字。通常要用的肯定是字体部分有Y分量(亮度),你现在这个白底黑字,不知底层咋算的。

然后再来调节mask。折腾mm.bmp

xiaonanko

0个粉丝

33

问答

0

专栏

0

资料

xiaonanko 2016-06-28 17:37:32
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=32688&ptid=11764]ngswfx 发表于 2016-6-28 17:31[/url]
先想办法把1.bmp变成黑低,白字。通常要用的肯定是字体部分有Y分量(亮度),你现在这个白底黑字,不 ...[/quote]

好像改成黑底白字就可以正常转了~{:3_64:}
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区