让图片能够自适应父容器的宽高,并且保证图片不变形不溢出,那么就需要对图片进行等比例缩放,拿到缩放后的宽高重新赋值即可,具体算法如下:

// 分别传入图片宽高、父容器宽高
const transformImgRatio = (imgWidth, imgHeight, containerWidth, containerHeight) => {let [// 用于设定图片的宽和高tempWidth,tempHeight,] = [0,0]try {imgWidth = parseFloat(imgWidth)imgHeight = parseFloat(imgHeight)containerWidth = parseFloat(containerWidth)containerHeight = parseFloat(containerHeight)} catch (error) {throw new Error('抱歉,我只接收数值类型或者可以转成数值类型的参数')}if (imgWidth > 0 && imgHeight > 0) {//原图片宽高比例 大于 指定的宽高比例,这就说明了原图片的宽度必然 > 高度if (imgWidth / imgHeight >= containerWidth / containerHeight) {if (imgWidth > containerWidth) {tempWidth = containerWidth// 按原图片的比例进行缩放tempHeight = (imgHeight * containerWidth) / imgWidth} else {// 按照图片的大小进行缩放tempWidth = imgWidthtempHeight = imgHeight}} else {  // 原图片的高度必然 > 宽度if (imgHeight > containerHeight) {tempHeight = containerHeight// 按原图片的比例进行缩放tempWidth = (imgWidth * containerHeight) / imgHeight} else {// 按原图片的大小进行缩放tempWidth = imgWidthtempHeight = imgHeight}}}return { width: tempWidth, height: tempHeight }
}

图片等比例缩放算法(计算缩放后的宽高)相关推荐

  1. vue图片在设置好的div里面自动适应宽高,显示全部图片,不够的留空白

    vue图片在设置好的div里面自动适应宽高,图片显示全部,不够宽高的留空白 <div class="rightullidiv"><img:src="it ...

  2. 等比缩放公式_图片等比例缩小算法

    图片等比例缩放算法 在许多语言中,都希望图片可以等比例缩小或者放大,但是仅仅依靠语言本身的方法, 大多差强人意, 所以在此提供一个所有语言通用的图片等比例缩小方法的算法. 这里以 java 语言为例子 ...

  3. 文本框固定任意一顶点后,拖动相对点任意旋转缩放,计算缩放后顶点坐标

    问题描述 鼠标拖动缩放文本框的时候,需要重新计算缩放后文本框四个顶点的坐标,然后重新绘制新文本框 在Office上,缩放文本框的操作一般是鼠标拖动八个控制点其中一个,然后固定住与其相对的控制点的位置, ...

  4. 计算html的高度,html计算各对象的宽高

    Window对象属性ScreenLeft/ScreenTop/ScreenX/ScreenY只读整数,声明了窗口的左上角在屏幕上的 x 坐标 和 y 坐标. /** * 获取屏幕的宽度 * @para ...

  5. 图片适应窗口_HTMLCSS学习笔记(八)-- 宽高自适应

    宽高自适应 网页布局中经常要定义元素的宽和高.但很多时候我们希望元素的大小能够根据窗口或子元素自动调整,这就是pc自适应. 自适应的优点: 元素自适应在网页布局中非常重要,它能够使网页显示更灵活,可以 ...

  6. php排字符串的高低位怎么区分,PHP-根据字符串和所用字体计算字符串所占宽高...

    今天由于用GD画图, 需要把一段文字在一个框内居中, 但是文字的宽度如果用strlen($str) * $font_size来计算的话, 由于文字不是等宽高的, 所以会导致偏离, 最后选用的GD库的i ...

  7. 图像缩放算法_opencv缩放算法

    1.opencv插值介绍 opencv提供resize函数用来做图像缩放,该函数有6个参数: (1)输入图像,Mat型 (2)输出图像,Mat型 (3)输出图像大小,可用cv::Size(out_im ...

  8. 第三周任务四:计算长方体的长宽高

    /* (程序头部注释开始)* 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称: * 作 者: 田 ...

  9. 计算机视觉-图像缩放算法-cuda实现

    一.CUDA CUDA是显卡厂商NVIDIA(英伟达)推出的运算平台,能够将数据数据复制到GPU,在GPU中进行计算,然后再返回给CPU端.CUDA将GPU称为设备侧或者Device,将CPU称为Ho ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第16期)
  2. 工作发狂:Mybatis 中$和#千万不要乱用!
  3. 王卡为何解封40g显示服务器开拆,腾讯大王卡40G流量用完了怎么办 腾讯大王卡解封以及解封后流量收费介绍...
  4. 构件图(Component Diagram)
  5. python查找指定文件路径_Python寻找路径和查找文件路径的示例
  6. 前端学习(2545):找不到模块
  7. java 回收器_Java虚拟机-经典垃圾回收器
  8. 2019.7.20js基础知识整理
  9. Asp.net SignalR
  10. HDU1276 士兵队列训练问题【模拟+array+vector+list】
  11. mysql中grade字段降序排列_Mysql order by 多个字段排序
  12. 制作自己的Maven镜像,上传Harbor镜像仓库
  13. HI3559A soc中使用sensor hub的uart0
  14. Elixir Meetup 相关不相关的一些感触
  15. mp4 joiner linux,MP4Joiner怎么用?使用MP4Joiner快速合并多个mp4视频文件的方法介绍
  16. 此操作系统不支持.netframework4.7.1
  17. 火车运煤算法--全面解析
  18. iOS 抽奖程序 可指定版
  19. gitbook 转换 pdf
  20. 给力文:网络营销就像娶美女做老婆(转)

热门文章

  1. 网狐提示您已经在房间,无法进入新房间解决办法
  2. kalibr标定realsenseD435i(一)--imu标定
  3. 三极管工作原理_【电子器件】02:三极管工作原理
  4. js调java并传参_Js调用Java方法并互相传参的简单实例
  5. 为什么阳历中平年二月是28天
  6. Java:Unicode简介(处理数据显示异常)
  7. 计算机基础应用试题——第二卷
  8. stuts2 技术内幕 2、3章
  9. primary key 主键
  10. 一个 Python 的轻量级搜索工具 -- Whose