QImage将图片白色背景修改为透明色

 

 

// 改透明色
QImage setImageColor(QImage img)
{
    QImage img_color = img.convertToFormat(QImage::Format_RGBA8888_Premultiplied, Qt::NoFormatConversion);
    int t_w = img_color.width();
    int t_h = img_color.height();
    for (int i=0;i<t_w;++i)
    {
        for(int j=0;j<t_h;++j)
        {
            QColor pix_color = img_color.pixelColor(i,j);
            // 一般大于240就可以判断为白色,但是我这里是等于240,所以我设置的大于200就判断为白色
            // qDebug()<<"r:"<<pix_color.red() <<" r:"<<pix_color.green()<<" b:"<<pix_color.blue();
            if(pix_color.red() > 200 && pix_color.green() > 200 && pix_color.blue() > 200)
            {
                pix_color.setAlpha(0);
                img_color.setPixelColor(i,j,pix_color);
            }
        }
    }
    //img_color.save("F:\\zhangsan.png", "png");
    return img_color;
}

 

posted @ 2023-09-17 17:52  十一的杂文录  阅读(203)  评论(0编辑  收藏  举报