Qt之給圖像添加效果QGraphicsEffect

QGraphicsEffect給圖像元素添加模糊Blur,陰影DropShadow,着色Colorize,透明QPacity等效果。函數

QGraphicsEffect是全部效果類的父類。鏈接原圖和最後輸出圖像的設置[好比QGraphicsView的視口]之間的渲染通道,而後實現效果。code

效果是Item的,不是Scene的blog

一、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的成員函數,將效果直接添加到條目上

二、QGraphicsColorizeEffect:顏色渲染ci

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

三、QGraphicsOpacityEffect設置透明度get

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

四、QGraphicsDropShadowEffect。。。。。等待完善it

相關文章
相關標籤/搜索