Qt 将图片白色背景转换为透明背景

心已赠人 2023-07-13 10:41 108阅读 0赞
  1. QImage convertImageWhiteColorAlpha(QImage val)
  2. {
  3. QImage imageAlpha = val.convertToFormat(QImage::Format_RGBA8888_Premultiplied, Qt::NoFormatConversion);
  4. int nWidth = imageAlpha.width();
  5. int nHeight = imageAlpha.height();
  6. for (int nCol = 0; nCol < nWidth; ++nCol)
  7. {
  8. for (int nRow = 0; nRow < nHeight; ++nRow)
  9. {
  10. QColor pixelColor = imageAlpha.pixelColor(nCol, nRow);
  11. // 如果该像素点的各分量值均大于240则认为该像素点的颜色为白色
  12. if (pixelColor.red() > 240 && pixelColor.green() > 240 && pixelColor.blue() > 240)
  13. {
  14. pixelColor.setAlpha(0);
  15. imageAlpha.setPixelColor(nCol, nRow, pixelColor);
  16. }
  17. }
  18. }
  19. return imageAlpha;
  20. }

发表评论

表情:
评论列表 (有 0 条评论,108人围观)

还没有评论,来说两句吧...

相关阅读