Qt之给图像添加效果QGraphicsEffect
时间: 2018-09-13来源:OSCHINA
前景提要
「深度学习福利」大神带你进阶工程师,立即查看>>>
QGraphicsEffect给图像元素添加模糊Blur,阴影DropShadow,着色Colorize,透明QPacity等效果。
QGraphicsEffect是所有效果类的父类。连接原图和最后输出图像的设置[比如QGraphicsView的视口]之间的渲染通道,然后实现效果。
效果是Item的,不是Scene的
1、QGraphicsBlurEffect:模糊 QPixmap pixmap(":/resources/lena.png"); QGraphicsPixmapItem *bg = m_scene.addPixmap(pixmap); //将图像画在m_scene上面 m_effect = new QGraphicsBlurEffect; //可以模糊图像图形的渲染区域。模糊效果在产生焦点失调效果时非常有用 m_effect->setBlurRadius(10); //设置模糊半径,默认模糊半径为5像素。越大越看不清楚 // m_effect->setEnabled(false); //效果开关,如果false就不起作用;默认是true bg->setGraphicsEffect(m_effect); //是QGraphicsItem的成员函数而不是scene的成员函数,将效果直接添加到条目上

2、QGraphicsColorizeEffect:颜色渲染 setScene(&m_scene); //当前QWidget窗口时继承QGraphicsView的 QPixmap pixmap(":/resources/lena.png"); QGraphicsPixmapItem *bg = m_scene.addPixmap(pixmap); //将图像画在m_scene上面 m_effect = new QGraphicsColorizeEffect; m_effect->setColor(QColor(0, 192, 192)); m_effect->setStrength(0.5); //0.0表示无效果,1.0表示完全着色,默认1.0 m_effect->setEnabled(true); bg->setGraphicsEffect(m_effect);

3、QGraphicsOpacityEffect设置透明度 setScene(&m_scene); //当前QWidget窗口时继承QGraphicsView的 QPixmap pixmap(":/resources/lena.png"); QGraphicsPixmapItem *bg = m_scene.addPixmap(pixmap); //将图像画在m_scene上面 m_effect = new QGraphicsOpacityEffect; m_effect->setOpacity(0.1); // 0.0表示完全透明[没有了],1.0表示完全不透明,默认0.7 m_effect->setEnabled(true); bg->setGraphicsEffect(m_effect);

4、QGraphicsDropShadowEffect。。。。。等待完善

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行