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.mzph.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α…