Flutter 獲取圖片像素?cái)?shù)據(jù)(rgba)
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
// 以本地圖片為例:
List RGBAList;
// 1. 獲取 ImageProvider: 通過(guò) `ExactAssetImage('$local_img_uri')` 獲取 ExactAssetImage 對(duì)象
// ExactAssetImage 繼承 AssetBundleImageProvider 繼承 ImageProvider
ExactAssetImage provider = ExactAssetImage('$local_img_uri');
// 2. 通過(guò) ImageProvider 獲取 ui.Image 對(duì)象
ImageStream stream = provider.resolve(ImageConfiguration.empty);
Completer completer = Completer<ui.Image>();
ImageStreamListener listener = ImageStreamListener((frame, sync) {
ui.Image image = frame.image;
completer.complete(image);
stream.removeListener(listener);
})
stream.addListener(listener);
// 3. 通過(guò) ui.Image 對(duì)象獲得 rgba 像素?cái)?shù)據(jù)
completer.then((ui.Image image) {
image.toByteData(format: ui.ImageByteFormat.rowRgba).then((ByteData data) {
RGBAList = data.buffer.asUint8List().toList();
});
})
quick app flex basis 測(cè)試 & 根節(jié)點(diǎn)最小高度不生效
<template>
<div class="common-style-visibility">
<div class="item1 item"></div>>
<div class="item2 item"></div>>
<div class="item3 item"></div>>
</div>
</template>
<script>
export default {}
</script>
<style>
.common-style-visibility {
height: 200px;
align-items: flex-start;
flex-direction: column;
}
.item {
height: 200px;
width: 100%;
border: 2px solid red;
}
.item1 {
background-color: #33ccff;
flex-basis: 30px;
}
.item2 {
background-color: #33ccff;
flex-basis: 80px;
}
.item3 {
background-color: #33ccff;
flex-basis: 100px;
}
</style>
quick app 根節(jié)點(diǎn)最小高度不生效
<template>
<div class="common-style-margin">
<div class="m-l-50 item">
</div>
<div class="m-t-50 item">
</div>
<div class="m-b-50 item">
</div>
<div class="margin-right-wrapper">
<div class="m-r-50 item">
</div>
<div class="m-r-50 item">
</div>
</div>
</div>
</template>
<script>
export default {
}
</script>
<style>
.common-style-margin {
position: fixed;
top: 50px;
left: 50px;
margin-left: 50px;
margin-top: 50px;
border: 4px solid #333;
width: 600px;
height: 50%;
align-items: flex-start;
flex-direction: column;
}
.m-l-50 {
margin-left: 50px;
background-color: #33ccff;
}
.m-t-50 {
margin-top: 50px;
background-color: #33ff99;
}
.m-r-50 {
margin-right: 50px;
background-color: #663399;
}
.m-b-50 {
margin-bottom: 50px;
background-color: #993333;
}
.item {
width: 300px;
height: 200px;
align-items: flex-start;
}
</style>
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。