首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

FFMPEG之后得到了一幅图的所有RGB值,怎么使用这些RGB值构造BitmapData对象

2012-03-24 
FFMPEG之后得到了一幅图的所有RGB值,如何使用这些RGB值构造BitmapData对象while( av_read_frame(pFormatCt

FFMPEG之后得到了一幅图的所有RGB值,如何使用这些RGB值构造BitmapData对象
while( av_read_frame(pFormatCtx, &packet)>=0 )
{

  if(packet.stream_index==videoStream)
  {
int decodebye=avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);
if(frameFinished)
  {
sws_scale(img_convert_ctx, pFrame->data, pFrame->linesize,0, 
pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize); //转换成RGB
  //BitmapData obj; 我如何使用RGB值(即pFrameRGB->data)构造BitmapData 对象?
  }
  }
}


[解决办法]
data是scan0, linesize是stride,另外注意是BGR24,因为ffmpeg用的字节序是反的
[解决办法]
看你要存储成为多少位的位图
如果是24位-那么每8位表示一个颜色值-一像素3字节
如果是32为-每8位表示一个颜色值,最后8位存储透明度。-一像素4字节
[解决办法]

探讨

data是scan0, linesize是stride,另外注意是BGR24,因为ffmpeg用的字节序是反的

热点排行