简简单单,做自己的视频加密软件

昨天刚开始学习OpenCV,老师要求的挖,两天完成个视频加密的小东东,还好在学长的帮助下搞定了,其实相当Easy 
 
简简单单,做自己的视频加密软件_第1张图片



贴下主要代码:

VOID EncryptVideo(char * szPath,char *outputPath,int key,BOOL bEncrpty)
{
	int nPos=0;

	IplImage*      current_frame = 0; 
	IplImage*      masked_frame = 0;
	IplImage*      tem_frame=0;

	CvCapture*      cap = 0;          //读视频
	CvVideoWriter*  wrt = 0;          //写视频

	//cvNamedWindow("image show", 1);  
	//cap= cvCaptureFromCAM(0);//捕获摄像头

	cap=cvCaptureFromAVI(szPath);

	int n=0;
	for( ;;)
	{ 
		if(!cvGrabFrame(cap))
			break;
		current_frame  = cvRetrieveFrame( cap);
		if (n==0)
		{
			wrt = cvCreateVideoWriter(outputPath,-1,15, cvGetSize(current_frame),1); 
			n++;
		}
		
		if(!current_frame || !wrt )
			{
					MessageBox(NULL,"bad video","error",MB_OK);
				ExitProcess(0);
			}
		//加密过程
		nPos=(current_frame->widthStep)*(current_frame->height);
		//tem_frame=current_frame;
		for (int n=0;n<nPos;n++)
		{
			current_frame->imageData[n]=(current_frame->imageData[n])^(key);//这里只是简单的对数据进行异或,您可以去设计更精巧的加密算法	
			///int temp=(current_frame->imageData[n])^(key+n);
		}
		cvWriteFrame(wrt, current_frame);
		//cvShowImage("image show",current_frame );
		if( cvWaitKey(20)>= 0 )//等待10毫秒
			break;
	}
	cvReleaseCapture(&cap);
	cvReleaseVideoWriter(&wrt);
	//cvDestroyWindow("image show"); 
	if (bEncrpty)
	{
		AfxMessageBox(_T("加密成功!"));
	}
	else
		AfxMessageBox(_T("解密成功!"));
}


你可能感兴趣的:(算法,加密,image,解密,video,null)