图像渐变算法--记录

	CString m_path1,m_path2;
        m_path1="1.jpg";m_path2="2.jpg";
	if(m_path1 != "" && m_path2 != "")
	{
	
		setPath(file1,file2);
		BeginWaitCursor();
		CString strPath = m_path1;

		SAFE_FREE(m_pImage1);

		CFile file;
		file.Open(strPath,CFile::modeRead);

		BITMAPFILEHEADER bfh;
		file.Read(&bfh,sizeof(BITMAPFILEHEADER));
		file.Read(&m_bmpBuf1,sizeof(BITMAPINFOHEADER));

		if ( IsBMP(m_bmpBuf1) == FALSE)
		{
			file.Close();
			return;
		}

		m_pImage1 = (LPBYTE) malloc (m_bmpBuf1.biSizeImage);
		file.Read(m_pImage1,m_bmpBuf1.biSizeImage);	
		file.Close();
		EndWaitCursor();
		Invalidate();	

		BeginWaitCursor();
		//CString
		strPath = m_path2;
		SAFE_FREE(m_pImage2);

		//CFile file;
		file.Open(strPath,CFile::modeRead);

		//BITMAPFILEHEADER bfh;
		file.Read(&bfh,sizeof(BITMAPFILEHEADER));
		file.Read(&m_bmpBuf2,sizeof(BITMAPINFOHEADER));

		if ( IsBMP(m_bmpBuf2) == FALSE)
		{
			file.Close();
			return;
		}

		m_pImage2 = (LPBYTE) malloc (m_bmpBuf2.biSizeImage);
		file.Read(m_pImage2,m_bmpBuf2.biSizeImage);
		file.Close();

		GraphTransformation();
		EndWaitCursor();
		Invalidate();
	}
	else
	{
	//	AfxMessageBox(L"请先选择好两个图");
		return;
	}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WS2812是一种基于数字信号的RGB LED灯带,渐变算法是指通过控制WS2812灯珠的亮度和颜色,使得灯带能够呈现渐变的效果。 渐变算法的基本原理是通过改变RGB三个颜色通道的亮度,来实现颜色的渐变。首先,我们需要定义起始颜色和目标颜色。可以将起始颜色的RGB值分别记为R1、G1和B1,目标颜色的RGB值分别记为R2、G2和B2。 接下来,计算RGB通道之间的差值,即ΔR、ΔG和ΔB。通过将差值除以渐变时间,得到每个渐变时间间隔内RGB通道的增量。 然后,在每个渐变时间间隔内,根据当前时间和总的渐变时间比例,计算出当前的RGB值。具体地,当前时刻t的RGB值可以通过如下公式计算: R = R1 + ΔR * (t / 渐变时间) G = G1 + ΔG * (t / 渐变时间) B = B1 + ΔB * (t / 渐变时间) 最后,将计算出的RGB值设置给WS2812灯珠,便能够实现颜色的渐变效果。 需要注意,渐变算法的实现还需考虑到颜色在RGB空间中的距离,以及渐变时间的设置。合理选择起始颜色、目标颜色和渐变时间,能够使得渐变效果更加平滑和自然。 总结起来,WS2812的渐变算法是通过改变RGB通道的亮度来实现颜色的渐变效果。通过计算起始颜色与目标颜色之间的差值,并根据渐变时间来确定每个时间间隔内的RGB增量。最后,将计算得出的RGB值设置给WS2812灯珠,就能够呈现出华丽的颜色渐变效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值