aklump/aspect-ratio

从一组尺寸计算绝对和附近的纵横比。

1.0.4 2018-08-20 23:40 UTC

This package is auto-updated.

Last update: 2024-09-20 07:50:24 UTC


README

这是一个处理纵横比的项目。虽然纵横比是一个简单的计算,但最近的“良好”纵横比不是,这正是这个项目的亮点。您可以输入任何尺寸集,实际的纵横比将以整数和小数形式计算,此外,您还将获得最近的“良好”纵横比,例如16:9,3:4等。作为额外奖励,还会计算与宽度相对应的黄金分割比。

以下是CLI输出的示例。

$ aspratio 768x634
Type         Ratio    Dimensions    Variance    Variance %
whole      384:317     768 x 634           0            0%
decimal      1.211     768 x 634           0            0%
nearby         6:5     768 x 640           6          0.9%
nearby        11:9     768 x 628          -6         -0.9%
nearby         5:4     768 x 614         -20         -3.2%
nearby         7:6     768 x 658          24          3.8%
nearby         9:7     768 x 597         -37         -5.8%
nearby         8:7     768 x 672          38            6%
nearby         9:8     768 x 683          49          7.7%
nearby        10:9     768 x 691          57            9%
nearby         4:3     768 x 576         -58         -9.1%
nearby       11:10     768 x 698          64         10.1%
golden       1.618     768 x 475        -159        -25.1%
  • 附近的比率按与原始高度的差异顺序列出,差异最小者排在前面。

使用Composer全局安装

要能够在CLI中的任何目录使用aspratio,您可能需要全局安装此软件包。

composer global require aklump/aspect-ratio

请确保您的PATH中包含composer的bin目录。默认值为~/.composer/vendor/bin,但您可以通过运行composer global config bin-dir --absolute来检查需要使用的值。

要检查此设置,您必须打开~/.bash_profile(或~/.bashrc);您正在寻找的行如下,如果您找不到,则需要添加它。

export PATH=~/.composer/vendor/bin:$PATH

快速入门

  1. 要确定尺寸集的纵横比附近纵横比黄金分割比,请在您的终端中键入以下内容;差异显示了附近比率高度变化的程度

     $ aspratio 960x555
     Type       Ratio    Dimensions    Variance    Variance %
     whole      64:37     960 x 555           0            0%
     decimal     1.73     960 x 555           0            0%
     nearby      12:7     960 x 560           5          0.9%
     nearby       7:4     960 x 549          -6         -1.1%
     nearby       5:3     960 x 576          21          3.8%
     nearby       9:5     960 x 533         -22           -4%
     nearby      11:6     960 x 524         -31         -5.6%
     nearby      13:8     960 x 591          36          6.5%
     golden     1.618     960 x 593          38          6.8%
     nearby      13:7     960 x 517         -38         -6.8%
     nearby       8:5     960 x 600          45          8.1%
     nearby      11:7     960 x 611          56         10.1%
     nearby      14:9     960 x 617          62         11.2%
    
  2. 使用--precision来控制小数版本的舍入精度。

     $ aspratio 960x555 --precision=6
     Type          Ratio    Dimensions    Variance    Variance %
     ...
     decimal     1.72973     960 x 555           0            0%
     ...
     golden     1.618034     960 x 593          38          6.8%
     ...
    
  3. 使用--json以JSON格式返回输出。

     $ aspratio 960x555 --json
     [{"type":"original","ratio_x":960,"ratio_y":555,"width":960,"height":555,"difference_y":0,"difference_y_percent":"0%"},{"type":"whole","ratio_x":64,"ratio_y":37,"width":960,"height":555,"difference_y":0,"difference_y_percent":"0%"},{"type":"decimal","ratio_x":1.729999999999999982236431605997495353221893310546875,"ratio_y":1,"width":960,"height":554.9132947976878540430334396660327911376953125,"difference_y":0,"difference_y_percent":"0%"},{"type":"nearby","ratio_x":12,"ratio_y":7,"width":960,"height":560,"difference_y":5,"difference_y_percent":"0.900900900901%"},{"type":"nearby","ratio_x":7,"ratio_y":4,"width":960,"height":548.5714285714285551875946111977100372314453125,"difference_y":-6,"difference_y_percent":"-1.08108108108%"},{"type":"nearby","ratio_x":5,"ratio_y":3,"width":960,"height":576,"difference_y":21,"difference_y_percent":"3.78378378378%"},{"type":"nearby","ratio_x":9,"ratio_y":5,"width":960,"height":533.3333333333333712289459072053432464599609375,"difference_y":-22,"difference_y_percent":"-3.96396396396%"},{"type":"nearby","ratio_x":11,"ratio_y":6,"width":960,"height":523.6363636363636260284692980349063873291015625,"difference_y":-31,"difference_y_percent":"-5.58558558559%"},{"type":"nearby","ratio_x":13,"ratio_y":8,"width":960,"height":590.7692307692308304467587731778621673583984375,"difference_y":36,"difference_y_percent":"6.48648648649%"},{"type":"golden","ratio_x":1.6180000000000001048050535246147774159908294677734375,"ratio_y":1,"width":960,"height":593.3250927070456555156852118670940399169921875,"difference_y":38,"difference_y_percent":"6.84684684685%"},{"type":"nearby","ratio_x":13,"ratio_y":7,"width":960,"height":516.923076923076905586640350520610809326171875,"difference_y":-38,"difference_y_percent":"-6.84684684685%"},{"type":"nearby","ratio_x":8,"ratio_y":5,"width":960,"height":600,"difference_y":45,"difference_y_percent":"8.10810810811%"},{"type":"nearby","ratio_x":11,"ratio_y":7,"width":960,"height":610.9090909090908780854078941047191619873046875,"difference_y":56,"difference_y_percent":"10.0900900901%"},{"type":"nearby","ratio_x":14,"ratio_y":9,"width":960,"height":617.1428571428572240620269440114498138427734375,"difference_y":62,"difference_y_percent":"11.1711711712%"}]
    
  4. 请参阅用法以获取更多示例。

贡献

如果您觉得这个项目很有用...请考虑捐款

用法

根据纵横比和宽度确定高度

  1. 通过输入纵横比和宽度来确定高度。

  2. 使用列出的尺寸作为原始尺寸

     $ aspratio 16:9 --width=1080
     Type       Ratio    Dimensions    Variance    Variance %
     whole       16:9    1080 x 608           0            0%
     decimal    1.778    1080 x 607           0            0%
     nearby      16:9    1080 x 608           0            0%
     nearby     17:10    1080 x 635          28          4.6%
     nearby      15:8    1080 x 576         -32         -5.3%
     nearby      17:9    1080 x 572         -36         -5.9%
     nearby       5:3    1080 x 648          41          6.7%
     golden     1.618    1080 x 667          60          9.9%
     nearby       2:1    1080 x 540         -68        -11.2%
     nearby       8:5    1080 x 675          68         11.2%
     nearby      17:8    1080 x 508         -99        -16.3%
     nearby       3:2    1080 x 720         113         18.6%
    

按纵横比缩放尺寸

  1. 要获取新尺寸,请输入现有尺寸和新的宽度。

     $ aspratio 1080x520 --width=320
     Type       Ratio    Dimensions    Variance    Variance %
     whole      81:39     320 x 154           0            0%
     decimal    2.077     320 x 154           0            0%
     nearby      17:8     320 x 151          -3         -1.9%
     nearby      15:7     320 x 149          -5         -3.2%
     nearby       2:1     320 x 160           6          3.9%
     nearby      13:6     320 x 148          -6         -3.9%
     nearby      11:5     320 x 145          -9         -5.8%
     nearby       9:4     320 x 142         -12         -7.8%
     nearby      16:7     320 x 140         -14         -9.1%
     nearby      17:9     320 x 169          15          9.7%
     nearby       7:3     320 x 137         -17          -11%
     nearby      15:8     320 x 171          17           11%
     golden     1.618     320 x 198          44         28.6%
    

反转

  1. 使用-i标志来反转宽度和高度。这就像从横向转为纵向。

     $ aspratio 768x512
     Type       Ratio    Dimensions    Variance    Variance %
     whole        3:2     768 x 512           0            0%
     decimal      1.5     768 x 512           0            0%
     nearby       3:2     768 x 512           0            0%
     nearby      13:9     768 x 532          20          3.9%
     nearby      11:7     768 x 489         -23         -4.5%
     nearby      10:7     768 x 538          26          5.1%
     nearby       8:5     768 x 480         -32         -6.3%
     golden     1.618     768 x 475         -37         -7.2%
     nearby       7:5     768 x 549          37          7.2%
     nearby      13:8     768 x 473         -39         -7.6%
     nearby      11:8     768 x 559          47          9.2%
     nearby       5:3     768 x 461         -51          -10%
     nearby       4:3     768 x 576          64         12.5%
     
     $ aspratio 768x512 -i
     Type       Ratio    Dimensions    Variance    Variance %
     whole        2:3     512 x 768           0            0%
     decimal    0.667     512 x 768           0            0%
     nearby       2:3     512 x 768           0            0%
     nearby      9:14     512 x 796          28          3.6%
     nearby      7:10     512 x 731         -37         -4.8%
     nearby      7:11     512 x 805          37          4.8%
     nearby       5:7     512 x 717         -51         -6.6%
     nearby       5:8     512 x 819          51          6.6%
     nearby      8:13     512 x 832          64          8.3%
     nearby      8:11     512 x 704         -64         -8.3%
     nearby       3:4     512 x 683         -85        -11.1%
     nearby       3:5     512 x 853          85         11.1%
     golden     1.618     512 x 316        -452        -58.9%
    

微调

  1. 使用--nearby--variance来微调附近计算

  2. --nearby返回从结果集中返回的附近值数量,按比例的宽度部分排序,从低到高。设置此值较低将减少更准确附近比率的数量,这些比率的分子较大。

  3. --variance设置允许的最大差异。这可能是一个百分比或一个数字。此示例中首先显示的输入为百分比。因为此值低于默认值,所以比例值更准确,但比例不那么“良好”,也就是说数字更高。与默认差异值相比,默认差异值的比例更“良好”。

     $ aspratio 370x111 --variance=2%
     Type       Ratio    Dimensions    Variance    Variance %
     whole       10:3     370 x 111           0            0%
     decimal    3.333     370 x 111           0            0%
     nearby      10:3     370 x 111           0            0%
     nearby      27:8     370 x 110          -1         -0.9%
     nearby     33:10     370 x 112           1          0.9%
     nearby     37:11     370 x 110          -1         -0.9%
     nearby     43:13     370 x 112           1          0.9%
     nearby     47:14     370 x 110          -1         -0.9%
     nearby      17:5     370 x 109          -2         -1.8%
     nearby      23:7     370 x 113           2          1.8%
     nearby     36:11     370 x 113           2          1.8%
     nearby     44:13     370 x 109          -2         -1.8%
     golden     1.618     370 x 229         118        106.3%
    
     $ aspratio 370x111 --variance=80%
     Type       Ratio    Dimensions    Variance    Variance %
     whole       10:3     370 x 111           0            0%
     decimal    3.333     370 x 111           0            0%
     nearby      10:3     370 x 111           0            0%
     nearby      17:5     370 x 109          -2         -1.8%
     nearby      13:4     370 x 114           3          2.7%
     nearby       7:2     370 x 106          -5         -4.5%
     nearby      16:5     370 x 116           5          4.5%
     nearby      19:6     370 x 117           6          5.4%
     nearby      18:5     370 x 103          -8         -7.2%
     nearby      11:3     370 x 101         -10           -9%
     nearby       3:1     370 x 123          12         10.8%
     nearby      15:4      370 x 99         -12        -10.8%
     golden     1.618     370 x 229         118        106.3%