- 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 ;
- }
- 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 。呵呵,英语很菜的,还是直接看文档吧,我把我的整个测试程序放到这个下面,感兴趣的可以看看,最后程序运行的结果如下: