您的位置:首页 > 编程语言 > Qt开发

Qt 中如何实现对图片设置透明色显示 .

2013-02-04 13:25 856 查看
QImage TestDialog::getTransImage(QImage image , QPoint ponit)

{

//判断所取的点是否在图片内部

if( image.valid( ponit ) )

{

QRgb rgb = image.pixel( ponit );

QVector<QRgb> rgbVector = image.colorTable () ;

for (int i = 0; i < rgbVector.size(); ++i)

{

if( rgbVector.at(i) == rgb )

{

/*

注意这里如果要变成黑色背景的话就是QRgb rgb2 = QColor(0, 0, 0, 0).rgb() ;

留意 rgb()与rgba()的区别

*/

QRgb rgb2 = QColor(0, 0, 0, 0).rgba() ;

image.setColor( i,rgb2 );

return image ;

}

}

}

return image ;

}

[cpp] view
plaincopy

QImage TestDialog::getTransImage(QImage image , QPoint ponit)

{

//判断所取的点是否在图片内部

if( image.valid( ponit ) )

{

QRgb rgb = image.pixel( ponit );

QVector<QRgb> rgbVector = image.colorTable () ;

for (int i = 0; i < rgbVector.size(); ++i)

{

if( rgbVector.at(i) == rgb )

{

/*

注意这里如果要变成黑色背景的话就是QRgb rgb2 = QColor(0, 0, 0, 0).rgb() ;

留意 rgb()与rgba()的区别

*/

QRgb rgb2 = QColor(0, 0, 0, 0).rgba() ;

image.setColor( i,rgb2 );

return image ;

}

}

}

return image ;

}

上面用到的两个重要的函数就是:

QRgb QImage::pixel ( const QPoint & position ) const

这个得到图片中某点的色素的rgb的值。

void QImage::setColor ( int index, QRgb colorValue )

设定图片的color table的索引值index所对应的颜色为 colorValue 。呵呵,英语很菜的,还是直接看文档吧,我把我的整个测试程序放到这个下面,感兴趣的可以看看,最后程序运行的结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: