如何在调整大小时计算图像的宽度和高度值?

时间:2011-04-19 01:42:41

标签: javascript jquery image

我需要一种方法来计算调整为1024px

时图像的宽度和高度值

图像,高度或宽度的最大值将调整为1024px,我需要计算剩余的宽度或高度值。

调整大小后,图像(3200 x 2400px)会转换为(1024 x 768像素)。

这需要是动态的,因为一些图像将是肖像和一些风景。

任何人都可以建议我如何解决以下问题:

<msxsl:script language="C#" implements-prefix="emint">
    <![CDATA[public string GetExtension(string fileName)
      { 
      string[] terms = fileName.Split('.');
      if (terms.Length <= 0)
      {
      return string.Empty;
      }
      return terms[terms.Length -1];
      }

      public string GetFileName(string fileName)
      { 
      string[] terms = fileName.Split('/');
      if (terms.Length <= 0)
      {
      return string.Empty;
      }
      return terms[terms.Length -1];
      }

      public string GetFileSize(Decimal mbs)
      { 
      Decimal result = Decimal.Round(mbs, 2);
      if (result == 0)
      {
      result = mbs * 1024;
      return Decimal.Round(result, 2).ToString() + " KB";
      }
      return result.ToString() + " MB";
      } 

      public string GetCentimeters(Decimal pix)
      {
      Decimal formula  = (decimal)0.026458333;
      Decimal result = pix * formula;
      return Decimal.Round(result,0).ToString();
      }]]>
  </msxsl:script>

2 个答案:

答案 0 :(得分:2)

          width = 1024;
          height = 768;

          ratio_orig = width_orig/height_orig;

          if (width/height > ratio_orig) {
             width = height*ratio_orig;
          } else {
             height = width/ratio_orig;
          }

末尾的widthheight的值对应于图像的宽度和高度。这保持了宽高比。

答案 1 :(得分:0)

这是伪代码中的算法。它将选择与原始图像具有相同宽度/高度比的最大可能尺寸(小于1024x1024像素)。

target_width = 1024
target_height = 1024

target_ratio = target_width / target_height
orig_ratio = orig_width / orig_height

if orig_ratio < target_ratio
    # Limited by height
    target_width = round(target_height * orig_ratio)
else
    # Limited by width
    target_height = round(target_width / orig_ratio)