微信小程序图片等比缩放显示正中间

2023-11-15

这是小程序 image标签的mode ,对图片的缩放做的处理

  1. 缩放 scaleToFill 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素
  2. 缩放 aspectFit 保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。
  3. 缩放 aspectFill 保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。
  4. 缩放 widthFix 宽度不变,高度自动变化,保持原图宽高比不变

但是这里的处理无法在一个固定框里显示图片的正中间

图片完整的显示并且置于固定框内正中间

主要代码

let originalWidth = e.detail.width;
let originalHeight = e.detail.height;
var mariginTopSize = 0;
var mariginLeftSize = 0;
let imageSize = ImgUtil.imageZoomWidthUtil(originalWidth, originalHeight, 180);
//按高度180缩放 180像素是根据自己项目的框固定的高度
//如果图片宽度没有大于屏幕宽度
if (imageSize.imageWidth < this.data.screenWidth) {
//向上偏移
imageSize = ImgUtil.imageZoomHeightUtil(originalWidth, originalHeight, this.data.screenWidth);
mariginTopSize = -(imageSize.imageHeight - 180) / 2;
} else {
//向左偏移
mariginLeftSize = -(imageSize.imageWidth - this.data.screenWidth) / 2;
}

开源项目:https://github.com/xiezhouhuang/Image-center-alignment

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序图片等比缩放显示正中间 的相关文章

  • 求解集合A和集合B的差集

    求解集合A和集合B的差集 题目 已知集合A和B的元素分别用不含头结点的单链表存储 函数difference 用于求解集合A与B的差集 并将结果保存在集合A的单链表中 例如 若集合A 5 10 20 15 25 30 集合B 5 15 35
  • 关于vue-cli 3版本做的改动,没有static文件夹,本地文件应放在哪儿,如何引用

    2 x版本 3 0版本 原来放在static下的文件 现在应该放在public文件夹下 原来的请求数据的写法 现在的写法 总结 vue3 0 对脚手架的结构和静态文件的引用方式都进行了简化
  • 字符流字节流相互转换

    1 字节输出流转换成字符输出流 写到硬盘 创建字节输出流 FileOutputStream fis new FileOutputStream E document aaa txt 字节输出流转换成字符输出流 OutputStreamWrit
  • 使用Python办公自动化:将文本与图表写入到PPT中

    使用Python办公自动化 将文本与图表写入到PPT中 其中含有写入文本 表格及图表到PPT中的一些常用函数 还含有一些对单元格的操作函数 代码如下 import pptx from pptx util import Inches from
  • 模型视图投影矩阵传递

    11
  • mysql 批量插入更新数据 的 两种方法

    有时会有这种需求 当符合某种条件的数据存在时 去修改它 不存在时 则新增 也就是saveOrUpdate操作 当没有的时候就是插入语句 有数据的时候判断主键和唯一索引是否一样 一样那就按照 ON DUPLICATE KEY UPDATE写的
  • 安装raw文件下的apk文件

    有时候我们需要将一些小软件嵌在我们的软件里面 那么我们就可以将这些apk放在我们的raw或者assets文件下进行暂时存储 那么下面我们用放在raw文件下进行展示安装这一过程 首先我们要把我们需要隐藏我apk文件放在raw文件下 raw是在
  • Dirichlet distribution狄利克雷分布

    狄利克雷分布 狄利克雷分布 维基百科 是一组连续多变量概率分布 是多变量普遍化的B分布 为了纪念德国数学家约翰 彼得 古斯塔夫 勒热纳 狄利克雷 Peter Gustav Lejeune Dirichlet 而命名 狄利克雷分布常作为贝叶斯
  • [1036]Jadx gui(JAVA反编译工具)

    github https github com skylot jadx Jadx gui是一款JAVA反编译工具 一个简单轻巧的 DEX 到 Java 反编译器 可让您导入 DEX APK JAR 或 CLASS 文件并将其快速导出为 DE

随机推荐

  • 实时数据库,内存数据库,关系型数据库比较

    内存数据库 内存数据库就是将数据放在内存中直接操作的数据库 它利用内存的读写速度比磁盘快 内存是随机访问而磁盘是顺序访问这两个特点 将数据保存在内存中 在内存中模仿建立表结构和索引结构并针对内存特性进行优化 相比从磁盘上访问 内存数据库访问
  • 集成电路设计开源EDA软件yosys详解1:工具安装

    yosys为一套开源的针对verilog的rtl综合框架 从本节开始将详细介绍工具的使用 并详细对源代码进行分析和讲解 首先介绍一下工具的安装和使用 yosys的git网址为https github com YosysHQ yosys 下面
  • scanner中InputMisMatchException处理

    我们知道在使用scanner进行控制台输入时候 使用next 方法输出 但是这种方法存在弊端 比如你使用nextInt 方法 但是输入一个字符串类型 就会抛出InputMisMatchException异常 首先来看一下scanner在jd
  • crmeb Java2.0集群部署教程

    crmeb Java 宝塔单机nginx负载均衡集群部署 1 添加站点 此处不做详述 2 站点设置 网站目录 关闭防跨转攻击 3 站点设置 添加反向代理 4 站点设置 配置文件 此处因为是本地测试 使用IP 端口 需要在之前的项目同级目录下
  • 关于lua语言及热更新的研究一

    lua语言是个非常强大的语言 在一些游戏里进行一些热更新操作 下面就来分享一下这个lua语言的基本语法 我这里使用了Sublime Text2 ctrl B 运行 Ctrl 快捷键注释 下面是代码 print hello 单行注释 多行注释
  • 开发工程师的职场人生路

    新闻来源 伯乐在线 当你选择计算机或者电子 自控等专业进入大学时 你本来还是有机会从事其它行业的 可你毕业时执迷不悟 仍然选择了开发做为你的职业 真是自做孽不可活 不过 欢迎你和我一样加入这个被其它人认为是风光无限的 白领 吧 恭喜 你选择
  • 一次内存溢出事故 - 用 jprofiler 分析 gc root

    事情经过 事情是这样 公司项目是一个springcloud的微服务 服务每隔半个月就会发生一次频繁的fullGC 后来定位到是缓存不合理导致的 该缓存的key是一条条sql value是表名 这个缓存是用来干嘛呢 查了下他主要是分库组件sh
  • Flutter 基于Bloc框架的封装

    1 页面状态的bloc封装 1 1 定义一个基类用于bloc用于处理页面状态 状态主要有 loading error empty 以及展示内容的showContent enum PageEnum showLoading showError
  • 基于frp原理实现的轻量级内网穿透工具frp-python

    gitee地址 https gitee com usualheart frp python github地址 https github com usualheart frp python git frp 是一个专注于内网穿透的高性能的反向代
  • mysql将某一列的值统一更改

    要在 MySQL 中将某一列的值统一更改 可以使用 UPDATE 语句 具体方法是 UPDATE 表名 SET 列名 新值 WHERE 条件 例如 要将名为 users 的表中的 age 列的值全部改为 25 可以这样写 UPDATE us
  • matlab 运行环境,Matlab运行环境

    Exception in thread main java lang UnsatisfiedLinkError Failed to find the library mclmcrrt7 14 dll required by MATLAB B
  • 学完Python,怎么变现?小哥哥10000元外快了解一下

    自学 Python 之后如果不去公司上班 自己一个人可以通过此技能挣什么钱 逆天的Python 只要你掌握了相关技术 就可以靠它赚钱 具体怎么赚 我们来看看一位小哥哥的回答 以我差不多四年的 Python 使用经验来看 大概可以按以下这些路
  • gradle学习笔记

    gradle 是一个让构建自动化的工具 类似于maven ant的功能 使用gradle可以给java项目编译 单元测试 打包 或者生成可执行的jar包等 gradle教程 Gradle Java 插件 w3cschoolJava 插件 J
  • 消息转换器封装返回体

  • 数据分析和挖掘常用方法

    数据分析和挖掘常用方法 介绍 聚类分析 回归分析 分类分析 以及其他常用分析手段 不同方法的内在业务联系 聚类分析 用户由哪些群体组成 这些群体有哪些明显特征 回归分析 未来销售趋势预测 营销投入如何影响销售 分类分析 如何筛选出更值得营销
  • 华北电力大学考研计算机专业怎么样,华电考研计算机专业排名

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1354计算机软件与理论359 1355计算机软件与理论340 1356计算机软件与理论334 1357计算机软件与理论329 1358计算机软件与理论326 1359计算机软件与理论324 1
  • css变量系列(2):小程序中使用css变量实现改变主题颜色

    使用css控制 app wxss web开发中顶层变量的key名是 root 小程序使用page page themeColor red 使用 view color var themeColor 这样的缺点是 我们无法通过 js 来更灵活的
  • uniapp微信小程序获取屏幕宽高

    uniapp开发微信小程序的时候 有时候去调整样式 你需要适配各种手机屏幕 使用 你的样式宽高就不能使用rpx 有的朋友觉得可以使用vw vh 是的 当然可以 但是要让你的元素 宽高 比如50 再去加上20rpx 怎么做 所以这时候就要去获
  • 正确的认识乱码与编码

    文章目录 编码的本质 乱码的几个例子及思考解决方案 浏览器输入到后端乱码 后端返回浏览器乱码 java 枚举类乱码 数据库存储乱码 Linux系统显示乱码 总结 编码的本质 编码将内存字节作用于磁盘文件或者网络文件的过程 是将磁盘文件 网络
  • 微信小程序图片等比缩放显示正中间

    这是小程序 image标签的mode 对图片的缩放做的处理 缩放 scaleToFill 不保持纵横比缩放图片 使图片的宽高完全拉伸至填满 image 元素 缩放 aspectFit 保持纵横比缩放图片 使图片的长边能完全显示出来 也就是说