Qt修改图片的背景色及设置背景色为透明的方法

您所在的位置:网站首页 文档标签图片怎么设置透明背景的 Qt修改图片的背景色及设置背景色为透明的方法

Qt修改图片的背景色及设置背景色为透明的方法

2024-07-16 02:17| 来源: 网络整理| 查看: 265

先上干货。

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