QT之灰色头像(类似QQ离线头像)

news/2025/3/16 0:55:23/

QT之灰色头像(类似QQ离线头像)

  • QT之灰色头像类似QQ离线头像
    • 概要
    • 效果图
    • 上代码
    • 下代码
    • 结尾

概要

在讲正常图片转灰色图片之前,我们先来了解下灰度图。灰度图又称为灰阶图,任何颜色都由红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:
1.浮点算法:Gray=R*0.3+G*0.59+B*0.11
2.整数方法:Gray=(R*30+G*59+B*11)/100
3.移位方法:Gray =(R*76+G*151+B*28)>>8;
4.平均值法:Gray=(R+G+B)/3;
5.仅取绿色:Gray=G;


我们再来看QT提供的qGray():

灰度

对于算法不一样,即精确度不一样,得到的灰度图的效果也就不一样!浮点数运算得到的效果是最好的,取绿色得到的效果是最差的。在这里,我们使用QT提供的方法进行演示,感兴趣的可以尝试其它效果哦! O(∩_∩)O

效果图

这里写图片描述

好了,我们一起来看下代码是如何实现的。

上代码

HeadToGray::HeadToGray(QWidget *parent): QWidget(parent)
{ui.setupUi(this);initNormalhead();
}HeadToGray::~HeadToGray()
{}void HeadToGray::initNormalhead()
{QPixmap normalHead = QPixmap(NORMAL_HEAD).scaled(QSize(ui.normalHead->width(), ui.normalHead->height()), Qt::KeepAspectRatio, Qt::SmoothTransformation);ui.normalHead->setPixmap(normalHead);QPixmap grayHead = QPixmap::fromImage(normalHeadToGray().scaled(QSize(ui.grayHead->width(), ui.grayHead->height()), Qt::KeepAspectRatio, Qt::SmoothTransformation));ui.grayHead->setPixmap(grayHead);
}//正常图片转灰色图
QImage HeadToGray::normalHeadToGray()
{QImage normalHead(NORMAL_HEAD);for (int nRow = 0; nRow < normalHead.width(); nRow++){for (int nColumn = 0; nColumn < normalHead.height(); nColumn++){QRgb rgb = normalHead.pixel(nRow, nColumn);int pixNum = qGray(rgb);//使用QT提供的灰色算法normalHead.setPixel(nRow, nColumn, qRgba(pixNum, pixNum, pixNum, qAlpha(rgb)));}}return normalHead;
}

下代码

类似QQ离线头像Demo下载 , 免费的,放心吧,骚年! O(∩_∩)O

结尾

只为记录,只为分享! 愿所写能对你有所帮助。Good Good Study, Day Day Up!
如果你觉得所写的对你有帮助,默默点个赞哈,你的赞就是我最大的支持,嘿嘿~不要说我骗赞哦,(^__^)


http://www.ppmy.cn/news/947680.html

相关文章

韩顺平老师QQ离线消息

1、Message 类&#xff0c;增加 Arraylise<Message>属性&#xff0c;MessageType 类增加离线消息类型 private ArrayList<Message> arrayList; String MESSAGE_OFFLINE "10";//离线消息类型 2、发送方用户正常发送消息 3、服务器判断接收方用户是否在…

若依vue -【 33 ~ 】

33 登录日志 系统管理 > 日志管理 > 登录日志 1 应用场景 统计用户的活跃度用户错误输入密码多少次 2 后台实现 &#xff08;1&#xff09;SysLoginController#login&#xff1a;登录 /*** 登录方法* * param loginBody 登录信息* return 结果*/PostMapping("/…

golang 日志库zap和日志切割实践

介绍 在许多Go语言项目中&#xff0c;我们需要一个好的日志记录器能够提供下面这些功能&#xff1a; 能够将事件记录到文件中&#xff0c;而不是应用程序控制台。 日志切割-能够根据文件大小、时间或间隔等来切割日志文件。 支持不同的日志级别。例如INFO&#xff0c;DEBUG&a…

万恶之源?

这是我第一次发布文章&#xff0c;我将分享Java后端的一些常用技术

来自鬼灭之刃迷的发表

炎柱母亲&#xff1a;知道你为什么刚生下来就比别人更强壮吗&#xff1f;那是因为上天要你用自己的天赋保护那些弱小之人。用自己的天赋欺负别人、中饱私囊。都是不允许的。 炎柱临死前&#xff1a;不管自己的懦弱和不中用&#xff0c;再怎么狠狠打击你。都要挺起胸膛&#xff…

鬼灭之刃中的人名儿

碳制郎的同期朋友&#xff0c;嘴平伊之助。 不知道是音译还是意译&#xff0c;这明明就是“嘴平一只猪”吗。 笑死&#xff0c;同时给翻译点个赞。

日本动漫作家和其部分作品

顺序按照作家出生先后 作者英文名出生日期作品藤子F不二雄 1933年12月1日哆啦A梦秋本治 1952年12月11日乌龙派出所鸟山明 1955年4月5日阿拉蕾、龙珠青山刚昌 1963年6月21名侦探柯南田尻智Tajiri Satoshi1965年8月28日精灵宝可梦井上雄彦Inoue Takehiko1967年1月12日灌篮高手武…

vol.131 日本异闻录 · 我曾经去了一个假的日本

主播 / 吕桑、朱峰 后期 / 朱峰 内容简介 这是津津乐道的一个新的节目系列&#xff0c;由吕桑给大家介绍他长居日本期间的见闻和风土人情&#xff0c;每期节目时长在30分钟以内&#xff0c;满足大家希望有一些短内容的需求。 第一期节目主要讲吕桑和日本的缘分&#xff0c;以及…