gaby

gaby

0个粉丝

4

问答

0

专栏

0

资料

gaby  发布于  2016-01-06 15:48:57
采纳率 0%
4个问答
6614

region+sdl 做osd遇到的问题

 
在使用sdl的时候,如果
1.SDL_SaveBMP(temp, "2.bmp");
2.SAMPLE_RGN_LoadBmp("2.bmp", &stBitmap);
3.HI_MPI_RGN_SetBitMap(0,&stBitmap);
这样调用显示的在region区域里面的位图是正常的。


但是因为SDL_SaveBMP(temp, "2.bmp")需要写入sd卡,不适合用来显示时间。
所以想着直接把数据丢过去,
如果不保存直接 把Surface(temp)里面的数据给stBitmap,
stBitmap.u32Width = temp->w;
stBitmap.u32Height = temp->h;
stBitmap.pData = temp->pixels;
stBitmap.enPixelFormat= PIXEL_FORMAT_RGB_1555;



究竟是哪里出了问题 , 求解?:) :)    Q 294800970
我来回答
回答11个
时间排序
认可量排序

david

33个粉丝

368

问答

253

专栏

229

资料

david 2016-01-07 10:09:59
认可0
直接写到内存不就可以了

gaby

0个粉丝

4

问答

0

专栏

0

资料

gaby 2016-01-07 10:26:37
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=24212&ptid=9823]david 发表于 2016-1-7 10:09[/url]
直接写到内存不就可以了[/quote]

sdl 提供写到内存的函数?没找到,:'(,然后就想着把那个temp里面的数据直接丢给那个stbitmap的结构体 然后出错。

goodman

2个粉丝

30

问答

18

专栏

17

资料

goodman 2016-01-07 13:55:13
认可0
帮你稍微看了下:
SDL_Surface *text = TTF_RenderUTF8_Solid //取得位图
SDL_ConvertSurface //  转换为RGB1555可以直接到内存

gaby

0个粉丝

4

问答

0

专栏

0

资料

gaby 2016-01-07 14:18:20
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=24232&ptid=9823]goodman 发表于 2016-1-7 13:55[/url]
帮你稍微看了下:
SDL_Surface *text = TTF_RenderUTF8_Solid //取得位图
SDL_ConvertSurface //  转换为R ...[/quote]

我是先
char *string=ctime(&timep);//获取时间
text = TTF_RenderUTF8_Solid(font, string, forecol);//转换位图
//创建一个符合hisi的Suface
temp = SDL_CreateRGBSurface(0,text->w, text->h, 24,0x00ff0000, 0x0000ff00, 0x000000ff, 0);
//
SDL_Rect bounds;

bounds.x = 0;                     
bounds.y = 0;                     
bounds.w = text->w;                     
bounds.h = text->h;
//用于转换                    
if (SDL_LowerBlit(text, &bounds, temp, &bounds) < 0)
   {   SDL_FreeSurface(text);                         
        SDL_SetError("Couldn't convert image to 24 bpp");                         
        text = NULL;                     
   }
这样也实现了 位图的转化,然后我就不明白,为什么save 那个temp后,再加载就好使, 直接把temp里面的数据丢过去就不好使。

Hoo-L

0个粉丝

6

问答

0

专栏

0

资料

Hoo-L 2016-01-13 10:39:57
认可0
叠加出错了问题的图片,应该是给stBitmap的width和height两个值与位图真正的宽高不一样呢,你有没有打印看看,叠加正确时的大小和出错时是不是一样的值呢?

gaby

0个粉丝

4

问答

0

专栏

0

资料

gaby 2016-01-13 11:53:48
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=24465&ptid=9823]Hoo-L 发表于 2016-1-13 10:39[/url]
叠加出错了问题的图片,应该是给stBitmap的width和height两个值与位图真正的宽高不一样呢,你有没有打印看 ...[/quote]

现在 可以了  , 虽然还是有点不明白 , 开始使用的=  后来申请空间 然后 进行memcpy就可以了,因为flash原因
最后还是换成了字库的bmp ,现在基本上已经解决osd问题。开始研究在线调试

gaby

0个粉丝

4

问答

0

专栏

0

资料

gaby 2016-01-13 11:54:22
认可0
osd 基本解决, 开始研究在线调试问题 。 灰常感谢各位的帮助。

leee23

0个粉丝

3

问答

0

专栏

0

资料

leee23 2016-01-27 20:32:23
认可0
我的osd位图叠加在通道上,编码出来h264是有osd的,但在通道画面上是没有看到osd,请问大家怎么看呢?

我们的路

0个粉丝

7

问答

0

专栏

0

资料

我们的路 2016-03-09 10:02:18
认可0
楼主,你的osd叠加上去的图片的黑色背景怎么透明掉呀?我现在遇到的问题就是,把SDL生成的图片叠加到区块上去,区块背景可以透明,到时这张图片的背景不能透明??请问楼主怎么解决呢??

beidoubushixing

0个粉丝

1

问答

0

专栏

0

资料

beidoubushixing 2018-08-04 09:40:04
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=25007&ptid=9823]leee23 发表于 2016-1-27 20:32[/url]
我的osd位图叠加在通道上,编码出来h264是有osd的,但在通道画面上是没有看到osd,请问大家怎么看呢?[/quote]

你是叠加在编码通道还是vpss通道?通道画面没有osd估计是你 预览的通道没叠加

qn1535097110

1个粉丝

21

问答

0

专栏

1

资料

qn1535097110 2019-04-12 10:11:45
认可0
我的日期时间osd是这样做的,在编码通道上使用region,然后利用truetype从ttf字库里面取字模,使用HI_MPI_RGN_GetCanvasInfo,得到写buffer,然后把得到的字模写到buffer里面,最后再HI_MPI_RGN_UpdateCanvas,但是这样会影响编码效率,发现编码有延时,这个怎么处理呢
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区