天天看点

利用opencv将QImage中指定的颜色变为透明

之前做项目的时候用到了将指定的颜色变为透明,

当时查了一些资料,现在在博客中记录下来,防止遗忘。

下面附上代码:

void vacDealThread::__Bmp2Png(QImage &bmp)
{
	bmp = bmp.convertToFormat(QImage::Format_RGBA8888_Premultiplied, Qt::NoFormatConversion);
	int bmpWidth = bmp.width();
	int bmpHeight = bmp.height();
    //指定的颜色
	QColor bmpBack(0, 0, 0);
	QColor bmpBackA(0, 0, 0, 0);
	for (int i = 0; i < bmpWidth; ++i)
	{
		for (int j = 0; j < bmpHeight; ++j)
		{
			if (bmp.pixelColor(i, j) == bmpBack)
			{
				bmp.setPixelColor(i, j, bmpBackA);
			}
		}
	}
}