按照給定尺寸進行圖片的解碼,而不是解碼整個圖片的尺寸,用來減少內(nèi)存的占用。
創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設、網(wǎng)絡營銷策劃、小程序定制開發(fā)、電子商務建設、網(wǎng)絡推廣、移動互聯(lián)開發(fā)、研究、服務為一體的技術型公司。公司成立十年以來,已經(jīng)為成百上千家OPP膠袋各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務?,F(xiàn)在,服務的成百上千家客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。
官方文檔:
官方說明:
Instructs Flutter to decode the image at the specified dimensions instead of at its native size.
This allows finer control of the size of the image in ImageCache and is generally used to reduce the memory footprint of ImageCache .
The decoded image may still be displayed at sizes other than the cached size provided here.
使用:
三方庫: cached_network_image 限2.5.0之后版本才可用
設定最大的緩存寬度和高度 this.maxWidthDiskCache 、 this.maxHeightDiskCache
使用:
從相冊選取圖片,展示時使用指定尺寸寬高進行處理。
使用三方庫:
使用自定義 provider 來指定所需圖片的寬高:
AssetEntityImageProvider 傳入寬高和圖片原圖 AssetEntity 數(shù)據(jù)。
provider 中 key.entity.thumbDataWithSize 方法:
進入 entity 中 thumbDataWithSize 方法:
進入 _getThumbDataWithId 方法中,
進入getThumb:
調(diào)用iOS原生的獲取圖片方法,
進入 getThumbWithId 方法,
原生實現(xiàn)獲取置頂寬高縮略圖方法實現(xiàn):
使用 iOS 原生類 PHImageManager 的
來獲取縮略圖。
flutter開發(fā)中,圖片的引用是必不可少的,所以為了提高效率和精準度,我們需要對不同分辨率的手機使用相對應的切圖圖片,本章介紹如何進行 圖片分辨率適配 和 圖片批量拓展處理 。
flutter中會首先根據(jù)系統(tǒng)的devicePixelRatio(每一個邏輯像素包含多少個原始像素,可以通過MediaQueryData.devicePixelRatio來得到)來找對應倍數(shù)的文件夾下的圖片,如果沒有對應倍數(shù),找最接近的。
所以在flutter項目中,我們需要構建對應的倍數(shù)像素文件夾
之后再pubspec.yaml中,配置assets文件后就可以使用了(如使用"assets/images/jay.png",會自動適配該像素下最接近的jay圖片)。
使用flutter-img-sync插件批量化處理,具體操作如下
目前還不能處理gif、webp等格式的圖片,而且如果和上邊介紹的不同像素比適配方案一起使用的話,由于進行了精準定位,所以指定圖片后就不能進行像素適配,這是目前還存在的較大問題,所以目前兩者方案只能暫時取一使用。
國外地址:
國內(nèi)鏡像:
以 flutter_screenutil 為例
路由框架 annotation_route
狀態(tài)管理 provider
UI適配 flutter_screenutil
刷新控件 flutter_easyrefresh
網(wǎng)絡請求 dio
toast控件 fluttertoast
圖表庫 charts_flutter
網(wǎng)絡監(jiān)聽 connectivity
事件總線 event_bus
日歷組件 table_calendar
官方webview webview_flutter
第三方webview flutter_webview_plugin
該篇文章為常用依賴包總結,用來記錄所需要的常用依賴包,后續(xù)會不斷擴充內(nèi)容~
Flutter的webview常用的第三方庫有 flutter_webview_plugin 、 webview_flutter ,后者的文檔較少,暫先學習flutter_webview_plugin。
添加依賴
導入包
iOS端info.plist配置,其中NSAppTransportSecurity節(jié)點是為了支持http協(xié)議
一個簡單的demo
要監(jiān)聽鏈接跳轉的話,實現(xiàn)onUrlChanged即可
添加依賴
導入包
iOS端info.plist配置
一個簡單的demo
但是在webview里點擊鏈接跳轉的時候,測試機有時會跳轉到系統(tǒng)瀏覽器上,并且點擊文本框無法彈出鍵盤,交互性很弱。
二者共同的缺點是與javascript難以交互,目前只能實現(xiàn)Flutter-JS傳遞信息,還沒找到可以進行完美交互的第三方庫。并且一些常見的協(xié)議還不支持,比如撥號和調(diào)用攝像頭等,期待后續(xù)完善。
Image是一個用于展示圖片的組件。支持 JPEG、PNG、GIF、Animated GIF、WebP、Animated WebP、BMP 和 WBMP 等格式。
Image.asset - 用于從資源目錄的顯示圖片,需要在 pubspec.yaml 文件中聲明。
Image.network - 用于從網(wǎng)絡上顯示圖片。
Image.file - 用于從文件里顯示圖片。
Image.memory - 用于從內(nèi)存里(Uint8List)顯示圖片。
alignment → AlignmentGeometry - 圖像邊界內(nèi)對齊圖像。
centerSlice → Rect - 九片圖像的中心切片。
color → Color - 該顏色與每個圖像像素混合colorBlendMode。
colorBlendMode → BlendMode - 用于 color 與此圖像結合使用。
fit → BoxFit - 圖像在布局中分配的空間。
gaplessPlayback → bool - 當圖像提供者發(fā)生變化時,是繼續(xù)顯示舊圖像(true)還是暫時不顯示(false)。
image → ImageProvider - 要顯示的圖像。
matchTextDirection → bool - 是否在圖像的方向上繪制圖像 TextDirection。
repeat → ImageRepeat - 未充分容器時,是否重復圖片。
height → double - 圖像的高度。
width → double - 圖像的寬度。
加載資源圖片需要將圖片資源放入工程中,例如:新建images文件夾,將圖片放在該文件夾下,圖片適配則是使用ios的方式1X,2X,3X:
然后在pubspec.yaml中配置assets:
加載資源/網(wǎng)絡/本地文件圖片/內(nèi)存圖片:
占位圖加載圖片:
圓形圖片:1.裁剪實現(xiàn) 2.CircleAvatar實現(xiàn) 3.Container邊框?qū)崿F(xiàn)
圓角圖片:1.裁剪實現(xiàn) 2.Container邊框?qū)崿F(xiàn)
BoxFit.contain 全圖居中顯示但不充滿,顯示原比例
BoxFit.cover 圖片可能拉伸,也可能裁剪,但是充滿容器
BoxFit.fill 全圖顯示且填充滿,圖片可能會拉伸
BoxFit.fitHeight 圖片可能拉伸,可能裁剪,高度充滿
BoxFit.fitWidth 圖片可能拉伸,可能裁剪,寬度充滿
BoxFit.scaleDown 效果和contain差不多, 但是只能縮小圖片,不能放大圖片
下一節(jié)學習基礎組件之Text
本文標題:flutter圖像處理庫,flutter Image
文章起源:http://sd-ha.com/article30/dsespso.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、定制網(wǎng)站、網(wǎng)站設計公司、做網(wǎng)站、網(wǎng)站制作、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)