当前位置:网站首页>QT 图片背景色像素处理法

QT 图片背景色像素处理法

2022-07-07 15:32:00 God港

前言

在qt开发中,我们经常会对背景图片进行处理,比如只想拿到图片的某一部分,接下来我们采用最原始的图像处理方法来实现效果。

步骤

我们先放一张原图
在这里插入图片描述
然后我们想把白色部分变为背景颜色
思路:
获取这张图片的所有像素点,对每个像素点进行rgb颜色的判断,如果是你想要改变的颜色,那么我们就将此像素点变为透明色(或者你想要改变的颜色)
代码

	QImage image(":/CustomAddControl/1.bmp");//加载原始图片
	int w, h;
	//得到图片的宽高
	w = image.width();
	h = image.height();
	//遍历每个像素点
	for (int i = 0; i < h; i++)
	{
    
		for (int j = 0; j < w; j++)
		{
    
			QRgb rgb = image.pixel(j, i);
			if (rgb == 0xFFFFFFFF)  //如果符合背景色
			{
    
				image.setPixel(j, i, 0x00000000);//此像素设置为透明
			}
		}
	}
	QPixmap tempPixmap = QPixmap::fromImage(image);//处理过后的图片

然后我们用label显示对比效果:
在这里插入图片描述
显然,我们发现原来图片的白色等区域变为透明色后被背景色覆盖了,这样我们就实现了简单的图片内嵌的效果。

总结

这种处理方式是较为原始的,我们可以基于此对象进行图片过滤、加强、锯齿等一系列的图像处理技术,只需要将像素点乘以一个图像处理矩阵即可,具体算法可以自行搜索,本文不在进行过多的讲解。

原网站

版权声明
本文为[God港]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_38491692/article/details/124978386