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);

相关推荐
努力实干3 分钟前
Qt/C++ 模块化设计与工程组织
开发语言·c++·qt
Rabitebla8 分钟前
【Linux底层原理】 工具篇(二):Vim 编辑器基础操作与简单配置
linux·c++·编辑器·vim
Lhan.zzZ27 分钟前
Qt:动态库模块框架设计
开发语言·c++·qt
wuminyu34 分钟前
JVM规范学习总结-JVM规范基本概念
java·linux·c语言·jvm·c++
Demon--hx2 小时前
jsoncpp 核心概念梳理:命名空间、Value 容器与格式化输出
c++
syagain_zsx14 小时前
BRpc 二次封装:Channel 管理、服务管理与回调工厂
c++·学习·程序人生·rpc·谷歌
fpcc15 小时前
计算机原理—如何高效的操作文件
c++·计算机原理
Rabitebla15 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
system_error_x15 小时前
C++ 编程基础入门教程
开发语言·c++
布莱克60517 小时前
A* 算法详解:从原理到实现
开发语言·c++·算法