圖像效果
設(shè)置組件的模糊、陰影、球面效果以及設(shè)置圖片的圖像效果。
說明:
開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
屬性
名稱 | 參數(shù)類型 | 默認(rèn)值 | 描述 |
---|---|---|---|
blur | number | - | 為當(dāng)前組件添加內(nèi)容模糊效果,入?yún)槟:霃剑:霃皆酱笤侥:?,?時(shí)不模糊。 取值范圍:[0, +∞) 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
backdropBlur | number | - | 為當(dāng)前組件添加背景模糊效果,入?yún)槟:霃剑:霃皆酱笤侥:?,?時(shí)不模糊。 取值范圍:[0, +∞) 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
shadow | [ShadowOptions] | [ShadowStyle]10+ | - |
grayscale | number | 0.0 | 為當(dāng)前組件添加灰度效果。值定義為灰度轉(zhuǎn)換的比例,入?yún)?.0則完全轉(zhuǎn)為灰度圖像,入?yún)t0.0圖像無變化,入?yún)⒃?.0和1.0之間時(shí),效果呈線性變化。(百分比) 取值范圍:[0, 1]**說明:**設(shè)置小于0的值時(shí),按值為0處理,設(shè)置大于1的值時(shí),按值為1處理。 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
ightness | number | 1.0 | 為當(dāng)前組件添加高光效果,入?yún)楦吖獗壤?,值?時(shí)沒有效果,小于1時(shí)亮度變暗,0為全黑,大于1時(shí)亮度增加,數(shù)值越大亮度越大。 取值范圍:[0, +∞)**說明:**設(shè)置小于0的值時(shí),按值為0處理。 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
saturate | number | 1.0 | 為當(dāng)前組件添加飽和度效果,飽和度為顏色中的含色成分和消色成分(灰)的比例,入?yún)?時(shí),顯示原圖像,大于1時(shí)含色成分越大,飽和度越大,小于1時(shí)消色成分越大,飽和度越小。(百分比) 取值范圍:[0, +∞)**說明:**設(shè)置小于0的值時(shí),按值為0處理。 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
contrast | number | 1.0 | 為當(dāng)前組件添加對(duì)比度效果,入?yún)閷?duì)比度的值。值為1時(shí),顯示原圖,大于1時(shí),值越大對(duì)比度越高,圖像越清晰醒目,小于1時(shí),值越小對(duì)比度越低,當(dāng)對(duì)比度為0時(shí),圖像變?yōu)槿?。(百分比?取值范圍:[0, +∞)**說明:**設(shè)置小于0的值時(shí),按值為0處理。 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
invert | number | 0 | 反轉(zhuǎn)輸入的圖像。入?yún)閳D像反轉(zhuǎn)的比例,值為1時(shí)完全反轉(zhuǎn),值為0則圖像無變化。(百分比) 取值范圍:[0, 1]**說明:**設(shè)置小于0的值時(shí),按值為0處理。 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
sepia | number | 0 | 將圖像轉(zhuǎn)換為深褐色。入?yún)閳D像反轉(zhuǎn)的比例,值為1則完全是深褐色的,值為0圖像無變化。 (百分比) 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
hueRotate | number | string | '0deg' |
colorBlend 8+ | [Color] | string | [Resource] |
sphericalEffect10+ | number | - | 設(shè)置組件的圖像球面化程度。 取值范圍:[0,1]。**說明:**1. 如果value等于0則圖像保持原樣,如果value等于1則圖像為完全球面化效果。在0和1之間,數(shù)值越大,則球面化程度越高。value < 0 或者 value > 1 為異常情況,value < 0 按0處理,value > 1 按1處理。 2. 如果組件的圖像使用異步加載,則不支持球面效果。例如Image組件默認(rèn)使用異步加載,如果要使用球面效果,就要設(shè)置syncLoad 為true ,但是這種做法不推薦。backgroundImage 也是使用異步加載,所以如果設(shè)置了backgroundImage ,不支持球面效果。 3. 如果組件設(shè)置了陰影,不支持球面效果。**系統(tǒng)接口:**此接口為系統(tǒng)接口。 |
lightUpEffect10+ | number | - | 設(shè)置組件圖像亮起程度。 取值范圍:[0,1]。 如果value等于0則圖像為全黑,如果value等于1則圖像為全亮效果。0到1之間數(shù)值越大,表示圖像亮度越高。value < 0 或者value > 1 為異常情況,value < 0 按0處理,value > 1 按1處理。**系統(tǒng)接口:**此接口為系統(tǒng)接口。 |
pixelStretchEffect10+ | [PixelStretchEffectOptions] | - | 設(shè)置組件的圖像邊緣像素?cái)U(kuò)展距離。 參數(shù)options 包括上下左右四個(gè)方向的邊緣像素?cái)U(kuò)展距離。**說明:**1. 如果距離為正值,表示向外擴(kuò)展,放大原來圖像大小。上下左右四個(gè)方向分別用邊緣像素填充,填充的距離即為設(shè)置的邊緣擴(kuò)展的距離。 2. 如果距離為負(fù)值,表示內(nèi)縮,但是最終圖像大小不變。 內(nèi)縮方式: 圖像根據(jù)options 的設(shè)置縮小,縮小大小為四個(gè)方向邊緣擴(kuò)展距離的絕對(duì)值。 圖像用邊緣像素?cái)U(kuò)展到原來大小。 3. 對(duì)options 的輸入約束: 上下左右四個(gè)方向的擴(kuò)展統(tǒng)一為非正值或者非負(fù)值。即四個(gè)邊同時(shí)向外擴(kuò)或者內(nèi)縮,方向一致。 所有方向的輸入均為百分比或者具體值,不支持百分比和具體值混用。 所有異常情況下,顯示為{0,0,0,0}效果,即跟原圖保持一致。**系統(tǒng)接口:**此接口為系統(tǒng)接口。 |
ShadowOptions對(duì)象說明
陰影屬性集合,用于設(shè)置陰影的模糊半徑、陰影的顏色、X軸和Y軸的偏移量。
從API version 9開始,該接口支持在ArkTS卡片中使用。
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
radius | number | [Resource] | 是 |
color | [Color] | string | [Resource] |
offsetX | number | [Resource] | 否 |
offsetY | number | [Resource] | 否 |
ShadowStyle10+枚舉說明
名稱 | 描述 |
---|---|
OUTER_DEFAULT_XS | 超小陰影。 |
OUTER_DEFAULT_SM | 小陰影。 |
OUTER_DEFAULT_MD | 中陰影。 |
OUTER_DEFAULT_LG | 大陰影。 |
OUTER_FLOATING_SM | 浮動(dòng)小陰影。 |
OUTER_FLOATING_MD | 浮動(dòng)中陰影。 |
示例
示例1
模糊屬性的用法,blur內(nèi)容模糊,backdropBlur背景模糊。
// xxx.ets
@Entry
@Component
struct BlurEffectsExample {
build() {
Column({ space: 10 }) {
// 對(duì)字體進(jìn)行模糊
Text('font blur').fontSize(15).fontColor(0xCCCCCC).width('90%')
Flex({ alignItems: ItemAlign.Center }) {
Text('original text').margin(10)
Text('blur text')
.blur(1).margin(10)
Text('blur text')
.blur(2).margin(10)
Text('blur text')
.blur(3).margin(10)
}.width('90%').height(40)
.backgroundColor(0xF9CF93)
// 對(duì)背景進(jìn)行模糊
Text('backdropBlur').fontSize(15).fontColor(0xCCCCCC).width('90%')
Text()
.width('90%')
.height(40)
.fontSize(16)
.backdropBlur(3)
.backgroundImage('/pages/attrs/image/image.jpg')
.backgroundImageSize({ width: 1200, height: 160 })
}.width('100%').margin({ top: 5 })
}
}
示例2
設(shè)置圖片的效果,包括陰影,灰度,高光,飽和度,對(duì)比度,圖像反轉(zhuǎn),疊色,色相旋轉(zhuǎn)等。
// xxx.ets
@Entry
@Component
struct ImageEffectsExample {
build() {
Column({ space: 10 }) {
// 添加陰影效果,圖片效果不變
Text('shadow').fontSize(15).fontColor(0xCCCCCC).width('90%')
Image($r('app.media.image'))
.width('90%')
.height(40)
.shadow({ radius: 10, color: Color.Green, offsetX: 20, offsetY: 30 })
// 灰度效果0~1,越接近1,灰度越明顯
Text('grayscale').fontSize(15).fontColor(0xCCCCCC).width('90%')
Image($r('app.media.image')).width('90%').height(40).grayscale(0.3)
Image($r('app.media.image')).width('90%').height(40).grayscale(0.8)
// 高光效果,1為正常圖片,< 1變暗, >1亮度增大
Text('brightness').fontSize(15).fontColor(0xCCCCCC).width('90%')
Image($r('app.media.image')).width('90%').height(40).brightness(1.2)
// 飽和度,原圖為1
Text('saturate').fontSize(15).fontColor(0xCCCCCC).width('90%')
Image($r('app.media.image')).width('90%').height(40).saturate(2.0)
Image($r('app.media.image')).width('90%').height(40).saturate(0.7)
// 對(duì)比度,1為原圖, >1值越大越清晰,< 1值越小越模糊
Text('contrast').fontSize(15).fontColor(0xCCCCCC).width('90%')
Image($r('app.media.image')).width('90%').height(40).contrast(2.0)
Image($r('app.media.image')).width('90%').height(40).contrast(0.8)
// 圖像反轉(zhuǎn)比例
Text('invert').fontSize(15).fontColor(0xCCCCCC).width('90%')
Image($r('app.media.image')).width('90%').height(40).invert(0.2)
Image($r('app.media.image')).width('90%').height(40).invert(0.8)
// 疊色添加
Text('colorBlend').fontSize(15).fontColor(0xCCCCCC).width('90%')
Image($r('app.media.image')).width('90%').height(40).colorBlend(Color.Green)
Image($r('app.media.image')).width('90%').height(40).colorBlend(Color.Blue)
// 深褐色
Text('sepia').fontSize(15).fontColor(0xCCCCCC).width('90%')
Image($r('app.media.image')).width('90%').height(40).sepia(0.8)
// 色相旋轉(zhuǎn)
Text('hueRotate').fontSize(15).fontColor(0xCCCCCC).width('90%')
Image($r('app.media.image')).width('90%').height(40).hueRotate(90)
}.width('100%').margin({ top: 5 })
}
}
示例3
設(shè)置組件的圖像球面效果。
// xxx.ets
@Entry
@Component
struct SphericalEffectExample {
build() {
Stack() {
TextInput({ placeholder: "請(qǐng)輸入變化范圍百分比([0%,100%])"})
.width('50%')
.height(35)
.type(InputType.Number)
.enterKeyType(EnterKeyType.Done)
.caretColor(Color.Red)
.placeholderColor(Color.Blue)
.placeholderFont({
size: 20,
style: FontStyle.Italic,
weight: FontWeight.Bold
})
.sphericalEffect(0.5)
}.alignContent(Alignment.Center).width("100%").height("100%")
}
}
效果圖如下:
去掉sphericalEffect的設(shè)置,效果如下:
示例4
設(shè)置組件的圖像漸亮效果。
// xxx.ets
@Entry
@Component
struct LightUpExample {
build() {
Stack() {
Text('This is the text content with letterSpacing 0.')
.letterSpacing(0)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('50%')
.lightUpEffect(0.6)
}.alignContent(Alignment.Center).width("100%").height("100%")
}
}
效果圖如下:
修改lightUpEffect參數(shù)值為0.2:
去掉lightUpEffect的設(shè)置,效果如下:
示例5
// xxx.ets
@Entry
@Component
struct LightUpExample {
@State isLunar: boolean = false
private selectedDate: Date = new Date('2028-08-08')
build() {
Stack() {
DatePicker({
start: new Date('1970-1-1'),
end: new Date('2100-1-1'),
selected: this.selectedDate
})
.lunar(this.isLunar)
.onChange((value: DatePickerResult) = > {
this.selectedDate.setFullYear(value.year, value.month, value.day)
console.info('select current date is: ' + JSON.stringify(value))
})
.lightUpEffect(0.6)
}.alignContent(Alignment.Center).width("100%").height("100%")
}
}
去掉lightUpEffect的設(shè)置,效果如下:
示例6
設(shè)置組件的圖像邊緣像素?cái)U(kuò)展效果。
// xxx.ets
@Entry
@Component
struct PixelStretchExample {
build() {
Stack() {
Text('This is the text content with letterSpacing 0.')
.letterSpacing(0)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.clip(false)
.width('50%')
.pixelStretchEffect({top:10,left:10,right:10,bottom:10 })
}.alignContent(Alignment.Center).width("100%").height("100%")
}
}
效果圖如下:
去掉pixelStretchEffect的設(shè)置,原圖效果如下:
示例7
基于示例6,現(xiàn)在把邊緣擴(kuò)展距離改為非正值。
// xxx.ets
@Entry
@Component
struct PixelStretchExample {
build() {
Stack() {
Text('This is the text content with letterSpacing 0.')
.letterSpacing(0)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('50%')
.pixelStretchEffect({top:-10,left:-10,right:-10,bottom:-10 })
}.alignContent(Alignment.Center).width("100%").height("100%")
}
}
效果圖如下:
跟原圖對(duì)比發(fā)現(xiàn),效果圖分兩步實(shí)現(xiàn):
1、原圖大小縮小,縮小后的大小為原圖大小減去像素 收縮的距離。例如,原圖大小為100*100
,設(shè)置了pixelStretchEffect({top:-10,left:-10, right:-10,bottom:-10 })
,則縮小后的大小為(100-10-10)*(100-10-10)
,即80*80
。
2、使用邊緣像素?cái)U(kuò)展,將圖像擴(kuò)展為原圖大小。
示例8
設(shè)置組件的內(nèi)容線性漸變模糊效果。
`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
// xxx.ets
@Entry
@Component
struct ImageExample1 {
private_resource1:Resource = $r('app.media.1')
@State image_src: Resource = this.private_resource1
build() {
Column() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start }) {
Row({ space: 5 }) {
Image(this.image_src)
.linearGradientBlur(60, { fractionStops: [[0,0],[0,0.33],[1,0.66],[1,1]], direction: GradientDirection.Bottom })
}
}
}
}
}
審核編輯 黃宇
-
鴻蒙
+關(guān)注
關(guān)注
57文章
2395瀏覽量
43087
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
HarmonyOS/OpenHarmony應(yīng)用開發(fā)-ArkTS的聲明式開發(fā)范式
鴻蒙ArkTS聲明式開發(fā):跨平臺(tái)支持列表【按鍵事件】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【按鍵事件】](https://file1.elecfans.com/web2/M00/C5/CD/wKgZomYCdwyAIFf5AAB_7E1pFms943.jpg)
鴻蒙ArkTS聲明式開發(fā):跨平臺(tái)支持列表【顯隱控制】 通用屬性
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【顯隱控制】 <b class='flag-5'>通用</b><b class='flag-5'>屬性</b>](https://file1.elecfans.com/web2/M00/EB/2D/wKgZomZdZsOAPO5rAACQtOvBUOY300.png)
鴻蒙ArkTS聲明式開發(fā):跨平臺(tái)支持列表【形狀裁剪】 通用屬性
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【形狀裁剪】 <b class='flag-5'>通用</b><b class='flag-5'>屬性</b>](https://file1.elecfans.com/web2/M00/EB/98/wKgZomZewfuAbiTWAACFRsepasU509.png)
鴻蒙ArkTS聲明式開發(fā):跨平臺(tái)支持列表【柵格設(shè)置】 通用屬性
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【柵格設(shè)置】 <b class='flag-5'>通用</b><b class='flag-5'>屬性</b>](https://file1.elecfans.com/web2/M00/EB/93/wKgZomZeuXuAfmJRAADrojiVvnQ389.png)
鴻蒙ArkTS聲明式開發(fā):跨平臺(tái)支持列表【菜單控制】 通用屬性
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【菜單控制】 <b class='flag-5'>通用</b><b class='flag-5'>屬性</b>](https://file1.elecfans.com/web2/M00/C6/E9/wKgaomYEK1aAOyTeAADysXFhWs8242.png)
鴻蒙ArkTS聲明式開發(fā):跨平臺(tái)支持列表【組件標(biāo)識(shí)】 通用屬性
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【組件標(biāo)識(shí)】 <b class='flag-5'>通用</b><b class='flag-5'>屬性</b>](https://file1.elecfans.com/web2/M00/EB/93/wKgZomZeuXuAfmJRAADrojiVvnQ389.png)
鴻蒙ArkTS聲明式開發(fā):跨平臺(tái)支持列表【多態(tài)樣式】 通用屬性
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【多態(tài)樣式】 <b class='flag-5'>通用</b><b class='flag-5'>屬性</b>](https://file1.elecfans.com/web2/M00/ED/45/wKgaomZiZyiARs72AACD6VoYVKQ541.png)
評(píng)論