基于qt的 圆角头像/图片 实现
首先自我介绍一下, 本人从事c++ qt方向的画面开发,工作内容主要是im pc端相关,接下来和大家分享一些经验之谈,希望可以帮助到有需要的同学。
今天为大家分享的是 基于qt 的圆角头像实现,废话不多说直接上代码。
/**
* 压缩图片为指定宽高
*/
QPixmap qimage::scaledPixmap(const QPixmap &src, int width, int height) {
return src.scaled(width, (height == 0 ? width : height),
Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
}
/**
* 圆角图片
* src 原图片
* radius 图片半径
*/
QPixmap qimage::generatePixmap(const QPixmap &src, const int &radius) {
// 无效图片不处理
if (src.isNull()) {
return src;
}
// 压缩图片
QPixmap pixmap = scaledPixmap(src, radius * 2);
QPixmap dest(2*radius, 2*radius);
dest.fill(Qt::transparent);
QPainter painter(&dest);
// 抗锯齿 + 平滑边缘处理
painter.setRenderHints(QPainter::An