Blackberry 10如何显示圆形图片

公司的设计,非要用圆形显示用户头像(貌似这个现在很是流行),研究了半天ImageView发现这根本就不太可能。所以只能在显示的图片上动手了,下面进入正题。

显示圆形图片无非就是将方形的图片进行圆形切割,圆形以外的部分只需要设置成透明色即可,原理清楚了,下面开工~

C++代码,用到了QImage、QBrush、QPainter三个Qt类:

//首先,用QImage加载原图
QImage qImage("org.png");
int width = qImage.width();
int height = qImage.height();
int radius = (width >height ? height : width); //因为要切割成圆形,所以如果图片是长方形我们就用最短边长
//创建一个新的正方形图片,全部填充为透明色
QImage out(radius, radius, QImage::Format_ARGB32);
out.fill(Qt::transparent);

//创建一个QBrush,Brush里就是我们的原图,后面会用QPainter把它画上去
QBrush brush(qImage);

//重点来了,开始在新的图片上画画了。。。
QPainter painter(&out);
painter.setPen(Qt::NoPen);//这里是设置画笔的颜色,因为本人只需要切割,不对图片描边,所以设置为NoPen
painter.setRenderHint(QPainter::Antialiasing);//启用反锯齿,切割出来没有锯齿哦~
painter.setBrush(brush);
painter.drawEllipse(0, 0, radius, radius); // 开始切割,oh,yeah~

//输出目标图片,当然要是png了,不然透明色就没了。这里要赞一下QImage的save居然可以根据文件后缀名自动输出格式的
out.save("cir.png");

至此,大功告成(疗效很好~),直接上图看效果~
原图:
Blackberry <wbr>10如何显示圆形图片

目标图:
Blackberry <wbr>10如何显示圆形图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值