Android ImageDecoder把瘦高/扁平大圖相當于fitCenter模式decode成目標小尺寸Bitmap,Kotlin

Android ImageDecoder把瘦高/扁平大圖相當于fitCenter模式decode成目標小尺寸Bitmap,Kotlin

?

?

            val sz = Size(MainActivity.SIZE, MainActivity.SIZE)val src = ImageDecoder.createSource(mContext?.contentResolver!!, uri)val bitmap = ImageDecoder.decodeBitmap(src, object : ImageDecoder.OnHeaderDecodedListener {override fun onHeaderDecoded(decoder: ImageDecoder, info: ImageDecoder.ImageInfo, source: ImageDecoder.Source) {decoder.allocator = ImageDecoder.ALLOCATOR_SOFTWARE//最小邊。val minEdge = Math.min(info.size.width, info.size.height)//豎長或扁平的圖,按照原圖最小的邊,把原圖縮小到目標寬高的采樣值。val sample = if (minEdge == info.size.width) {info.size.width / sz.width} else {info.size.height / sz.height}//如果原始圖/視頻尺寸比目標的尺寸大。if (sample > 1) {val cx = (info.size.width) / 2val cy = (info.size.height) / 2val rect = Rect(cx - minEdge / 2, cy - minEdge / 2, cx + minEdge / 2, cy + minEdge / 2)decoder.crop = rect}}})

?

?

?

Android矩陣Matrix setRectToRect實現標準scaleType中心縮放centerCrop,Kotlin_安卓 rect matrix-CSDN博客文章瀏覽閱讀696次,點贊21次,收藏18次。Android拼接合并圖片生成長圖代碼實現合并兩張圖片,以第一張圖片的寬度為標準,如果被合并的第二張圖片寬度和第一張不同,那么就以第一張圖片的寬度為準線,對第二張圖片進行縮放。Android拼接合并圖片生成長圖代碼實現合并兩張圖片,以第一張圖片的寬度為標準,如果被合并的第二張圖片寬度和第一張不同,那么就以第一張圖片的寬度為準線,對第二張圖片進行縮放。基礎上,把剪切的區域從矩形Rect變為圓形的Path,當手指在上面的ImageView移動時候,下面同等大小對應的坐標區域顯示“剪切”出來的圓形圖。_安卓 rect matrixhttps://blog.csdn.net/zhangphil/article/details/139753381

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45129.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45129.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45129.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Playwright+Python】系列 Pytest 插件在Playwright中的使用

一、命令行使用詳解 使用 Pytest 插件在Playwright 中來編寫端到端的測試。 1、命令行執行測試 pytest --browser webkit --headed 2、使用 pytest.ini 文件配置 內容如下: [pytest] # Run firefox with UIaddopts --headed --browser firefox效果&#xff1…

云計算【第一階段(31)】PXE高效批量網絡裝機

一、系統安裝 1.1、系統裝機的三種引導方式 1. 硬盤 2. 光驅( u 盤) 3. 網絡啟動 pxe 1.2、系統安裝過程 加載boot loader Boot Loader 是在操作系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映…

【CSS in Depth 2 精譯】3.1.2 邏輯屬性 + 3.1.3 用好邏輯屬性的簡寫形式

當前內容所在位置(可進入專欄查看其他譯好的章節內容) 第一章 層疊、優先級與繼承(已完結) 1.1 層疊1.2 繼承1.3 特殊值1.4 簡寫屬性1.5 CSS 漸進式增強技術1.6 本章小結 第二章 相對單位(已完結) 2.1 相對…

深入探討:CPU問題的深度分析與調優

引言 你是否曾經遇到過這樣的情況:系統運行突然變慢,用戶抱怨不斷,檢查后發現CPU使用率居高不下?這時候,你會如何解決?本文將詳細解析CPU問題的分析與調優方法,幫助你在面對類似問題時游刃有余。 案例分析:一次CPU性能瓶頸的解決過程 某知名互聯網公司在一次促銷活動…

《Python數據科學之一:初見數據科學與環境》

《Python數據科學之一:初見數據科學與環境》 歡迎來到“Python數據科學”系列的第一篇文章。在這個系列中,我們將通過Python的鏡頭,深入探索數據科學的豐富世界。首先,讓我們設置和理解數據科學的基本概念以及在開始任何數據科學項…

實變函數精解【4】

文章目錄 說明點集與測度可數集定義性質示例與有限集的關系應用 可列集定義種類不可列集性質應用與意義 有限集性質示例與無限集的區別應用 可數集(Countable set)和可列集(Countably infinite set 或 Enumerable set)可數集可列集…

怎樣把pptx課件轉換成word文檔

如果你還沒有安裝python-pptx和python-docx,請先運行以下命令: pip install python-pptx python-docx from pptx import Presentation from docx import Document import re# 函數:清理文本,移除特殊字符和控制字符 def clean…

每日Attention學習11——Lightweight Dilated Bottleneck

模塊出處 [TITS 23] [link] [code] Lightweight Real-Time Semantic Segmentation Network With Efficient Transformer and CNN 模塊名稱 Lightweight Dilated Bottleneck (LDB) 模塊作用 改進的編碼器塊 模塊結構 模塊代碼 import torch import torch.nn as nn import to…

qt 添加一個圖片控件

在Qt中,要添加一個圖片控件,你通常會使用QLabel或者QGraphicsView來顯示圖片。下面是使用QLabel來顯示圖片的一種方法: 使用 QLabel 顯示圖片 在Qt Designer中添加QLabel 打開你的Qt Designer。從工具箱中找到QLabel控件,并將其拖…

C#如何進行深度學習對行人進行識別?

C#通常不是用于深度學習的主要語言,但是通過一些庫和框架,你可以輕松地在C#中實現深度學習。以下是使用C#進行深度學習的一些更詳細的步驟: 選擇合適的庫: ML.NET:這是微軟推出的一個機器學習庫,它很容易集成到.NET應用程序中。ML.NET支持廣泛的機器學習任務,包括深度學…

使用DeepWalk 和Word2Vec實現單詞Embedding

0、準備“邊”數據集Wiki_edgelist import pandas as pddf pd.read_csv(./data/wiki/Wiki_edgelist.txt, sep , headerNone, names["source", "target"]) df.head() 1、讀入 起點-終點 邊數據,構建圖 # 1、讀入 起點-終點 邊數據&#xff0c…

GIS就業相關問題快問快答

目錄 前言1.現在處于經濟下行期,GIS就業崗位是否減少了?2.我未來的打算是進體制內研發崗,這方面需要掌握哪些技能呢?3.GIS前端需要掌握哪些知識?4.GIS后端需要掌握哪些知識?5.不論是前端還是后端&#xff0…

編程語言都是哪些人開發出來的?為什么都是國外較小國家的人

編程語言都是哪些人開發出來的? 編程語言的開發者通常是來自計算機科學、軟件工程、數學、物理學等領域的專家、學者和工程師。這些開發者具備深厚的編程技能、算法知識、系統設計能力以及創新思維,他們致力于創造出能夠解決特定問題或滿足特定需求的編…

Docker入門(清晰認識)

為什么學習Docker? 再學完linux后,我們需要遠程對Linux虛擬機下載一些軟件,如果在Linux里直接用命令下載軟件會十分麻煩,所以我們需要通過使用Docker將軟件直接下載到Docker中,這樣更方便下載和卸載等操作。 一張圖弄…

javaScript的面試重點--預解析

目錄 一.前言 二.預解析案例 一.前言 關于預解析,我們通過今天學習就能夠知道解析器運行JS分為哪兩步;能夠說出變量提升的步驟和運行過程;能夠說出函數提升的步驟和運行過程。 二.預解析案例 預解析,簡而言之,也就是…

7.13實訓日志

上午 學習網絡安全的過程中,我們深入了解了網絡的不同層面和技術,從表層網絡到深網再到暗網,以及涉及的產業分類和技術工具。這些知識不僅幫助我們理解網絡的復雜性,還揭示了如何應對和防范各種網絡威脅。 首先,我們…

簡易秒表的實現

目錄 描述 輸入描述: 輸出描述: 參考代碼 描述 請編寫一個模塊,實現簡易秒表的功能:具有兩個輸出,當輸出端口second從1-60循環計數,每當second計數到60,輸出端口minute加一,一直…

當在多線程環境中使用 C++進行編程時,怎樣確保線程安全以及如何處理線程之間的同步和通信?

在C中確保線程安全性和處理線程之間的同步和通信有多種方法。下面是一些常用的技術和技巧: 互斥鎖:使用互斥鎖可以確保只有一個線程可以訪問共享資源。在訪問共享資源之前獲取鎖,在完成后釋放鎖。這可以防止多個線程同時訪問同一份數據&#…

007-端口隔離

端口隔離配置 端口隔離簡介 為了實現報文之間的二層隔離,可以將不同的端口加入不同的VLAN,但會浪費有限的VLAN資源。采用端口隔離特性,可以實現同一VLAN內端口之間的隔離。 設備支持以下方式進行端口隔離: 基于隔離組的端口隔…

中介子方程五十七

XXFXXaXnXaXXαXLXyXXWXuXeXKXXiXyXΣXXΣXXVXuXhXXWXηXXiXhXXpXiXXpXXbXXiXOXWXyXkXXeXpXXαXXpXeXXkXyXWXOXiXXbXXpXXiXpXXhXiXXηXWXXhXuXVXXΣXXΣXyXiXXKXeXuXWXXyXLXαXXaXnXaXXFXXaXnXaXXαXLXyXXWXuXeXKXXiXyXΣXXΣXXVXuXhXXWXηXXiXhXXpXiXXpXXbXXiXOXWXyXkXXeXpXXα…