shuijingbaby 2015-06-30 00:16 采纳率: 0%
浏览 760

关于音频水印系统的代码

这是音频水印嵌入代码中的函数头,void CWatermark1Dlg::EmdWatermark(HDIB hDIB),其中(HDIB hDIB)是什么意思?这个函数是要自己定义吗还是通过点击按钮自动生成的?
全部代码如下:
void CWatermark1Dlg::EmdWatermark(HDIB hDIB)
{
//音频指针
short int* lp;
//音频数据长度
DWORD lWave;
//图像指针
LPSTR lpDIB;
//图像数据区指针
LPSTR lpDIBBits;
BYTE lptemp;
short temp;
CWnd *m_pWnd;
CString psnr;
lpDIB=(LPSTR)::GlobalLock((HGLOBAL) hDIB);
lpDIBBits=(LPSTR)::FindDIBBits(lpDIB);
lp=wave.m_DataSize;
lWave=wave.m_DataSize;
m_pWnd=GetDlgItem(IDC_EDIT2);
//获取DIB宽度
int cxDIB=(int) ::DIBWidth(lpDIB);
//获取DIB高度
int cyDIB=(int) ::DIBHeight(lpDIB);
C=lWave/(2*cxDIB*cyDIB);
//嵌入水印
for(int i=0;i<cyDIB;i++)
{
for(int j=0;j<cxDIB;j++)
{
temp=
(lp+(i*cxDIB+j)*C);
lptemp=(BYTE*)lpDIBBits+cxDIB*(cyDIB-i-1)+j;
//正数可以正常取下整,负数只能取上整,都变成正数处理
short x=(temp+32768)/D%2;
short y=(*lptemp)/128;
if(x==y)
{
*(lp+(i*cxDIB+j)*C=(temp+32768)/D*D-32768+D/2;
}
else
*(lp+(i*cxDIB+j)*C=(temp+32768)/D*D-32768-D/2;
}
}
wave.m_Flag=true;

}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 基于卷积神经网络的声纹识别
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP