欢迎来真孝善网,为您提供真孝善正能量书籍故事!

音视频基础教程:从入门到实践

时间:11-22 神话故事 提交错误

今天给各位分享音视频基础教程:从入门到实践的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

位图文件头(14 字节) 位图信息头(40 字节) 颜色信息图形数据文件头和信息头共54 字节RGB 数据部分:

RGB24文件存储的顺序是RGB、RGB、RGB.RGB

BMP 文件中RGB 数据存储的顺序是BGR、BGR、BGR.BGR

位图文件头

。位图文件头分为4部分,共14字节。

名称占用空间内容示例数据bfType2 字节标识符,即“BM” BMbfSize4 字节整个BMP 文件的大小0x000C0036 (786486) bfReserved12 字节保留字0bfReserved22 字节保留字0bfOffBits4 字节偏移数,即位图文件头+ 位图片信息头+ 调色板大小0x36 (54)

位图信息头

位图信息头共40 字节

名称占用空间内容示例数据biSize 4 字节位图信息头大小,400x28 (40) biWidth 4 字节位图宽度,单位为像素0x200 (512) biHeight 4 字节位图高度,单位为像素0x200 (512 )biPlanes2 字节固定value 11biBitCount2 字节每像素位数1-黑白图片,4-16色,8-256色,24-真彩色,32-带alpha通道0x18(24)biCompression4字节压缩方式,BI_RGB(0)为未压缩的0biSizeImage4 字节位图所有像素占用的字节数,BI_RGB 可设置为00x0CbiXPelsPerMeter4 字节水平分辨率(像素/米) 0biYPelsPerMeter4 字节垂直分辨率(像素/米) 0biClrUsed 4 字节位图使用的颜色数量如果是为0,则颜色数为2 的biBitCount 0biClrImportant4 字节次方。重要颜色的数量。 0表示所有颜色都很重要0

将 RGB24 像素点数据转成 BMP 格式图片

转换代码:

#include#include//彩虹的七种颜色

u_int32_t RainbowColors[]={

0XFF0000, //红色

0XFFA500, //橙色

0XFFFF00, //黄色

0X00FF00, //绿色

0X007FFF, //绿色

0X0000FF, //蓝色

0X8B00FF //紫色

};

/*bmp文件头*/

类型定义结构{

无符号整型bfSize; /* 文件大小*/

无符号短bfReserved1; /* 预订的*/

无符号短bfReserved2; /* . */

无符号整型bfOffBits; /* 位图数据的偏移量*/

位图文件头;

/*bmp信息头*/

类型定义结构{

无符号整型biSize; /* 信息头的大小*/

int 双宽度; /* 图像宽度*/

int 双高度; /* 图像高度*/

无符号短双平面; /* 颜色平面数*/

无符号短biBitCount; /* 每个像素的位数*/

无符号整型双压缩; /* 使用的压缩类型*/

无符号整型biSizeImage; /* 图像数据大小*/

int biXPelsPerMeter; /* 每米X 像素*/

int biYPelsPerMeter; /* 每米Y 像素*/

无符号整型biClrUsed; /* 使用的颜色数量*/

unsigned int biClr重要; /* 重要颜色的数量*/

位图信息头;

void writeRGBToBmp(char *文件名, int 宽度, int 高度) {

FILE *bitmapFile=fopen(文件名, "wb");

if(!bitmapFile) {

printf("无法写入文件n");

返回;

}

uint16_t bfType=0x4d42;

位图文件头文件头;

文件头.bfReserved1=0;

文件头.bfReserved2=0;

fileHeader.bfSize=2 + sizeof(BitmapFileHeader) + sizeof(BitmapInfoHeader) + 宽度*高度*3;

文件头.bfOffBits=0x36;

位图信息头信息头;

infoHeader.biSize=sizeof(BitmapInfoHeader);

infoHeader.biWidth=宽度;

infoHeader.biHeight=高度;

infoHeader.biPlanes=1;

infoHeader.biBitCount=24;

infoHeader.biSizeImage=0;

infoHeader.bi压缩=0;

infoHeader.biXPelsPerMeter=5000;

infoHeader.biYPelsPerMeter=5000;

infoHeader.biClrUsed=0;

infoHeader.biClrImportant=0;

fwrite(bfType, sizeof(bfType), 1, 位图文件);

fwrite(文件头,sizeof(文件头),1,位图文件);

fwrite(infoHeader, sizeof(infoHeader), 1, bitmapFile);

//写入图像数据

for (int i=0; i 宽度; ++i) {

//当前颜色

u_int32_t currentColor=RainbowColors[0];

如果(我100){

当前颜色=彩虹颜色[0];

} 否则如果(i 200) {

当前颜色=彩虹颜色[1];

} 否则如果(i 300) {

当前颜色=彩虹颜色[2];

} 否则如果(i 400) {

当前颜色=彩虹颜色[3];

} 否则if(i 500) {

当前颜色=彩虹颜色[4];

} 否则如果(i 600) {

当前颜色=彩虹颜色[5];

} 否则如果(i 700) {

当前颜色=彩虹颜色[6];

}

//当前颜色的R分量

u_int8_t R=(当前颜色0xFF0000) 16;

//当前颜色G分量

u_int8_t G=(当前颜色0x00FF00) 8;

//当前颜色B分量

u_int8_t B=当前颜色0x0000FF;

for (int j=0; j 高度; ++j) {

//按BGR顺序将一个像素RGB24写入文件

fwrite(B, 1, 1, 位图文件);

fwrite(G, 1, 1, 位图文件);

fwrite(R, 1, 1, 位图文件);

}

}

//关闭文件

fclose(位图文件);

}

int main() {

writeRGBToBmp("/Users/staff/Desktop/rainbow-700x700.bmp", 700, 700);

返回0;

}

检查生成的 BMP 图片

恭喜!看图软件已经识别了我们的BMP图片,预览正常!

但!好像有什么不对劲?我们的彩虹倒过来了!

彩虹的颜色从上到下应该是:

红-橙-黄-绿-青-蓝-紫

这张图是:

紫色-蓝色-青色-绿色-黄色-橙色-红色

image-demo-rainbow-bmp-reverse

处理图片倒立问题

BitmapInfoHeader 中的biHeight 字段,

如果biHeight 为正值,则从下到上扫描位图。

如果biHeight 为负值,则从上到下扫描位图。

如果该值的设置与原始位图文件的扫描方式不一致,则图像可能会上下颠倒。

将上述转换代码添加到BitmapInfoHeader部分:

//infoHeader.biHeight=高度;

infoHeader.biHeight=-height;image-demo-rainbow-bmp

Congratulations!

成功创建了带有像素的“真实”图片!

代码:

RGB 转BMP

参考:

维基百科-BMP

位图(bmp)文件格式分析

将RGB24 图像转换为BMP 图像

关于RGB32和RGB24的区别

非双字对齐像素到双字对齐位图

从rgb 值数组生成bmp 文件

好了,文章到此结束,希望可以帮助到大家。

用户评论

﹎℡默默的爱

想学做一些创意视频,这个标题就很有吸引力!

    有5位网友表示赞同!

歆久

以前一直想要学习音视频制作,现在是个好机会!

    有20位网友表示赞同!

来瓶年的冰泉

我听说这门课很实用,可以帮助找到工作吗?

    有11位网友表示赞同!

纯真ブ已不复存在

需要准备什么工具才能开始学习呢?

    有10位网友表示赞同!

古巷青灯

音视频入门是哪个方面的入门?影视还是直播?

    有9位网友表示赞同!

我怕疼别碰我伤口

有没有针对零基础的课程推荐?

    有15位网友表示赞同!

陌颜

感觉现在做音视频越来越popular了!

    有6位网友表示赞同!

ー半忧伤

希望能学到一些剪辑技巧,制作有趣的内容。

    有10位网友表示赞同!

限量版女汉子

想学习如何用手机拍出高质量视频!

    有7位网友表示赞同!

万象皆为过客

这个标题提到了入门,难道课程难度很高吗?

    有19位网友表示赞同!

淡抹丶悲伤

希望课程能涵盖声音和画面处理的知识!

    有15位网友表示赞同!

灼痛

音视频制作真的很酷炫,想跟着教程一起动手实践一下。

    有9位网友表示赞同!

孤城暮雨

学习完能做些自己喜欢的东西,真是太棒了!

    有13位网友表示赞同!

空谷幽兰

我对这个标题很感兴趣,需要进一步了解课程内容!

    有16位网友表示赞同!

迁心

有没有什么案例可以参考?

    有12位网友表示赞同!

冷风谷离殇

我之前尝试过一些软件,感觉还是不懂很多原理。

    有11位网友表示赞同!

棃海

希望能学习到专业的处理技巧,而不是软件的操作规则。

    有6位网友表示赞同!

从此我爱的人都像你

如果学习音视频很受欢迎,应该有很多学习资源吧?

    有15位网友表示赞同!

淡淡の清香

想知道课程的费用是多少,以及报名方式。

    有14位网友表示赞同!

自繩自縛

我想成为一名优秀的视频剪辑师!

    有13位网友表示赞同!

【音视频基础教程:从入门到实践】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活