专栏首页贝塔博客图片在父容器中按比例缩放算法

图片在父容器中按比例缩放算法

/**
 * w1在w2中按比例缩放
 * @param w1
 * @param h1
 * @param w2
 * @param h2
 */
function scale(w1, h1, w2, h2) {

    var v1 = w1 / w2;
    var v2 = h1 / h2;
    var r1 = w1, r2 = h1;

    if (w1 > w2) {
        r1 = w2;
        r2 = (w2 / w1) * h1;
        if (r2 > h2) {
            r2 = h2;
            r1 = (h2 / h1) * w1;
        }
    }

    if (h1 > h2) {
        r2 = h2;
        r1 = (h2 / h1) * w1;
        if (r1 > w2) {
            r1 = w2;
            r2 = (h2 / h1) * w1;
        }
    }

    return {
        width: r1,
        height: r2
    }
}

r = scale(300, 600, 800, 500);
console.log(r)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Node.js UDP打洞

    https://www.cnblogs.com/xiii/p/5052586.html

    小贝壳
  • 用django开发一个管理系统有多简单?不用写代码的妹子都会

    django是python中最流行的一个web框架,django为广大开发者提供了非常便捷的开发模式。高度封装ORM,不用写一句代码,只要定义了model就可以...

    小贝壳
  • macOS或linux安装编译Python3.9

    由于Python3.9还未发布,官方并未提供完整的安装包下载。 只提供了源码,所以我们需要用源码编译安装。

    小贝壳
  • 干货 | 尉迟坚畅谈新基建-工业互联网-价值魔方(附PPT下载)

    清华大学109周年校庆之际,清华校友总会软件学院分会、大数据系统软件国家工程实验室和清华大学大数据研究中心共同主办了以“软件定义新基建,数据驱动新未来”为主题的...

    数据派THU
  • Unrecognised tag: 'snapshotPolicy'

    问题:[WARNING] Unrecognised tag: 'snapshotPolicy' (position: START_TAG seen ...</l...

    绝命生
  • ART代码下载

    有时候,为了方便,想下载Android源码中的ART仓的代码在本地查看,其实很简单,和下载完整android源码方式一样。下载前确保电脑能访问google。我这...

    congduan
  • 【SDL最初实践】开篇

    记得在之前参加面试时,被问到SDL,勉强把其流程稍加解释的给背了出来,面试官一脸不屑的样子记忆犹新。因为那时负责的是乙方安服技术团队,针对甲方推崇但又没几家实际...

    aerfa
  • CSS居中方法集锦

    这阵一直忙各路笔试面试,心越来越浮躁,也好久没有写些东西。不过也正是这些虐我千百遍的笔试面试题让我愈发地觉得确有必要整理一下知识点,让网上书上看的杂乱无章的东西...

    星回
  • 浅谈 RAID 写惩罚(Write Penalty)与 IOPS 计算

    导读]本文作者认为讨论不同RAID保护类型的性能,用户考虑的因素是RAID Write Penalty(写惩罚)。本文从原理上解释了不同RAID保护级别的写惩罚...

    SuperDream
  • “不要害怕 RAID!”-kafka磁盘必备

    我在互联网上经常看到这样的说法:RAID很危险,RAID磁盘阵列在重建过程中失败的可能性几乎是100%,因为硬盘驱动器已经变得非常大。

    Spark学习技巧

扫码关注云+社区

领取腾讯云代金券