1. 程式人生 > 其它 >短視訊軟體開發,影象顏色漸變和顏色覆蓋

短視訊軟體開發,影象顏色漸變和顏色覆蓋

短視訊軟體開發,影象顏色漸變和顏色覆蓋實現的相關程式碼
1. LinearGradient 影象線性漸變
完整程式碼如下:

```cpp
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtGraphicalEffects 1.12 ///--[Mark1]

ApplicationWindow{
id: root
visible: true
width: rect.width
height: rect.height
title: qsTr("斜向漸變");

Item {
id: rect
anchors.centerIn: parent
width: linear.width
height: linear.height
LinearGradient
{
id: linear
anchors.centerIn: parent
width: image.width
height: image.height
source: Image { 
///--[Mark2] id: image source: "image/404.png" fillMode: Image.PreserveAspectFit; mipmap: true smooth: true antialiasing: true } gradient: Gradient { GradientStop { position: 0.0; color: "red" } GradientStop { position: 0.5; color: "green" } GradientStop { position: 1.0; color: "blue" } } start: Qt.point(0, 0)
// end: Qt.point(width, 0) ///1.橫向漸變 // end: Qt.point(0, height) ///2.豎向漸變 end: Qt.point(width, height) ///3.斜向漸變 [Mark3] } } } ```

要注意三處,文中都已用Mark標記。

其一是,需要匯入 import QtGraphicalEffects 1.12
其二是,LinearGradient 的源為要顯示的影象
其三是,漸變的結束點位置
另外顏色如果改變不了,很有可能是圖片本身不允許,最好是向量圖吧,我也不太懂~
2. ColorOverlay 顏色覆蓋

完整程式碼如下:

```cpp
import QtQuick 
2.7 import QtQuick.Controls 2.0 import QtGraphicalEffects 1.12 ///--[Mark1] ApplicationWindow{ id: root visible: true width: item.width height: item.height title: qsTr("顏色疊加為綠色"); Item { id: item anchors.centerIn: parent width: image.width height: image.height Image { id: image anchors.centerIn: parent source: "image/404.png" fillMode: Image.PreserveAspectFit; //按比列填充,不會變形 mipmap: true smooth: true antialiasing: true } ColorOverlay { anchors.fill: image source: image color: "green" } } } ```

以上就是 短視訊軟體開發,影象顏色漸變和顏色覆蓋實現的相關程式碼,更多內容歡迎關注之後的文章