Qt修改图片的背景色及设置背景色为透明的方法 |
您所在的位置:网站首页 › 文档标签图片怎么设置透明背景的 › Qt修改图片的背景色及设置背景色为透明的方法 |
先上干货。 Qt下修改图片背景色的方法: 方法一: QPixmap CKnitWidget::ChangeImageColor(QPixmap sourcePixmap, QColor origColor, QColor destColor) { QImage image = sourcePixmap.toImage(); for(int w = 0;w < image.width();++w) for(int h = 0; h < image.height();++h) { QRgb rgb = image.pixel(w,h); if(rgb == origColor.rgb()) { ///替换颜色 image.setPixel(w,h,destColor.rgba()); } } return QPixmap::fromImage(image); }这是非常暴力的方法,但是非常有用,经测试,位深度24及以上的图片都能被修改。 方法二: QPixmap Widget::ChangeImageColor(QPixmap sourcePixmap, QColor origColor, QColor destColor) { QImage image = sourcePixmap.toImage(); uchar * imagebits_32; for(int i =0; i 0) { mybits->rgba_bits[3] = (mybits->rgba== 0xFF000000)?0:255; mybits++; } return image; }
原理其实就是设置图片的alpha通道为0,即全透明。 这里有个注意点: 如果需要保存透明图片要注意选用支持alpha通道的图片格式,一般选用png格式。 欢迎各位指正,顺便吐槽下,csdn这个写博客的功能真的很难受,有的字打不上来,但是可以粘贴上来。。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |