QImage转换图片格式,并替换特定颜色像素

Widget ::Widget ( QWidget *parent ) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    QImage img("./111.jpg");
//    QImage img("./222.png");
    qDebug()<<img.format();
    union myrgb
    {
        uint rgba;
        uchar rgba_bits[4];
    };
    myrgb* mybits =(myrgb*) img.bits();
    int len = img.width()*img.height();
    while(len --> 0)
    {
        mybits->rgba = (mybits->rgba_bits[3]== 0)?0xffffffff:mybits->rgba;
        mybits++;
    }
 
 
    img.convertToFormat(QImage::Format_RGB888);
    img=img.scaled(260,260*img.height()/img.width());
    img.save("./img.bmp","bmp");
 
 
    ui->label->resize(260,260*img.height()/img.width());
    ui->label->setPixmap(QPixmap("./img.bmp").scaled(ui->label->size()));
}

猜你喜欢

转载自blog.csdn.net/jianzemax/article/details/79281750