日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

qt设置文本背景透明_Qt修改图片的背景色及设置背景色为透明的方法

發布時間:2025/4/5 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

{

imagebits_32 = image.scanLine(i);

for(int j =0; j < image.width(); ++j)

{

int r_32 = imagebits_32[j * 4 + 2];

int g_32 = imagebits_32[j * 4 + 1];

int b_32 = imagebits_32[j * 4];

if(r_32 == origColor.red()

&& g_32 == origColor.green()

&& b_32 == origColor.blue())

{

imagebits_32[j * 4 + 2] = (uchar)destColor.red();

imagebits_32[j * 4 + 1] = (uchar)destColor.green();

imagebits_32[j * 4] = (uchar)destColor.blue();

}

}

}

return QPixmap::fromImage(image);

}

相對開銷小一點的方法,但在圖片量不大的情況下,CPU處理起來都挺快。

原理都是替換指定像素區域的色碼,但是Qt文檔推薦方法一,相對開銷較小。具體原理還有很多的,先貼出來,跟大家一起學習。有時候方法一無效,但是方法二有效,都可以試試。

圖片背景色設為透明的方法:

///將指定圖片的指定顏色扣成透明顏色的方法

QImage Widget::ConvertImageToTransparent(QImage image/*QPixmap qPixmap*/)

{

image = image.convertToFormat(QImage::Format_ARGB32);

union myrgb

{

uint rgba;

uchar rgba_bits[4];

};

myrgb* mybits =(myrgb*) image.bits();

int len = image.width()*image.height();

while(len --> 0)

{

mybits->rgba_bits[3] = (mybits->rgba== 0xFF000000)?0:255;

mybits++;

}

return image;

}

原理其實就是設置圖片的alpha通道為0,即全透明。

這里有個注意點:

如果需要保存透明圖片要注意選用支持alpha通道的圖片格式,一般選用png格式。

歡迎各位指正,順便吐槽下,這個寫博客的功能真的很難受,有的字打不上來,但是可以粘貼上來。。

總結

以上是生活随笔為你收集整理的qt设置文本背景透明_Qt修改图片的背景色及设置背景色为透明的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。