Qt将图片绘制成圆形

cpp 复制代码
QPixmap roundedPixmap(const QPixmap& src, QSize size, int radius) {
    QPixmap scaled = src.scaled(size, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation);
    QPixmap dest(size);
    dest.fill(Qt::transparent);

    QPainter painter(&dest);
    painter.setRenderHint(QPainter::Antialiasing);
    QPainterPath path;
    path.addRoundedRect(0, 0, size.width(), size.height(), radius, radius);
    painter.setClipPath(path);
    painter.drawPixmap(0, 0, scaled);

    return dest;
}

QPixmap rounded = roundedPixmap(QPixmap("xxx.jpg"), ui->portrait_label->size(), 20); // 设置圆角半径

ui->portrait_label->setPixmap(rounded);

相关推荐
没文化的阿浩7 分钟前
【C++】详解继承机制
开发语言·c++
拳里剑气29 分钟前
C++算法:队列与BFS
c++·算法·bfs·宽度优先·队列
aaPIXa6221 小时前
C++模板元编程:在编译期完成计算,实现零运行时开销
java·开发语言·c++
郝学胜-神的一滴1 小时前
CMake 038:OBJECT目标复用编译+Linux动态库版本自动化管理
linux·c++·程序人生·软件工程·软件构建·cmake·工程配置
初阳7851 小时前
【Qt】系统相关(3)——多线程
qt
Sylvia-girl2 小时前
第八站:vector及其常用操作【上】
c++
Sunsets_Red2 小时前
浅谈博弈论
c++·学习·编程·博弈论·信息学竞赛·巴巴博弈
ALex_zry2 小时前
C++26 std::inplace_vector 详解:零堆分配的定容向量
开发语言·c++
我不是懒洋洋3 小时前
从零实现一个安全沙箱:文件行为分析系统
c++
卷无止境3 小时前
C++ 类型转换变迁之路:从隐式转换到 static_cast
c++·后端