FOURCC的生成

FOURCC的生成

什么是FOURCC

FOURCC全称Four-Character Codes,是在编程中非常常用的东西,一般用作标示符。比如wav、avi等RIFF文件的标签头标示,Quake 3的模型文件.md3中也大量存在等于“IDP3”的FOURCC。它是一个32位的标示符,其实就是

typedef unsigned long FOURCC

用宏生成FOURCC

FOURCC是由四个字符拼接而成的。生成FOURCC的传统方法是:

// 来自mmsystem.h
#define MAKEFOURCC(ch0, ch1, ch2, ch3)    / 
 ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |  / 
 ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))

这种方法很简单直观,而且以下代码:

switch (val)
{
case MAKEFOURCC('f', 'm', 't', ' '):
 ...
 break;

case MAKEFOURCC('d', 'a', 't', 'a'):
 ...
 break;

 ...
}

能顺利通过编译,因为宏能在编译期生成常量,符合case的条件。

内联函数?

如果你是一个纯粹的C++用户,那么你一定会对带参数的宏非常反感,无论是《The C++ Programming Language》、《Effective C++》还是其他好的C&

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Python中生成视频中的二维码,你可以使用OpenCV和qrcode库。下面是一个简单的示例代码: ```python import cv2 import qrcode # 生成二维码图像 qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=10, border=4, ) qr.add_data("https://www.csdn.net/") # 设置二维码的内容 qr.make(fit=True) qr_img = qr.make_image(fill_color="black", back_color="white") # 打开视频文件 video = cv2.VideoCapture("input_video.mp4") # 替换为你的视频文件路径 # 获取视频的帧率、宽度和高度 fps = video.get(cv2.CAP_PROP_FPS) width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH)) height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 创建输出视频文件 fourcc = cv2.VideoWriter_fourcc(*"mp4v") output_video = cv2.VideoWriter("output_video.mp4", fourcc, fps, (width, height)) frame_count = 0 while True: ret, frame = video.read() if not ret: break # 在帧上绘制二维码图像 x_offset = 10 # 设置二维码在视频帧上的位置 y_offset = 10 frame[y_offset:y_offset + qr_img.size[1], x_offset:x_offset + qr_img.size[0]] = qr_img.get_image() # 写入输出视频文件 output_video.write(frame) frame_count += 1 video.release() output_video.release() cv2.destroyAllWindows() ``` 请确保已经安装了OpenCV和qrcode库。在上面的代码中,我们使用qrcode库生成二维码图像,并使用OpenCV从视频文件读取帧,并将二维码图像叠加到每一帧上。最后,我们将修改后的帧写入新的输出视频文件中。 注意:这只是一个简单的示例,实际应用中,你可能需要根据自己的需求进行更多的定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AMin2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值