短视频软件开发,图像颜色渐变和颜色覆盖

短视频软件开发,图像颜色渐变和颜色覆盖实现的相关代码
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"
}
}
}
```

 

以上就是 短视频软件开发,图像颜色渐变和颜色覆盖实现的相关代码,更多内容欢迎关注之后的文章

posted @ 2021-08-04 14:09  云豹科技-苏凌霄  阅读(100)  评论(0编辑  收藏  举报