Как рассчитать значения ширины и высоты изображения при изменении размера? - PullRequest
0 голосов
/ 19 апреля 2011

Мне нужен способ для вычисления значений ширины и высоты изображения при изменении его размера до 1024px

Наибольшее значение изображения, высоты или ширины будет изменено до 1024 пикселей, и мне нужно выяснить оставшееся значение ширины или высоты.

Изображение (3200 x 2400 пикселей) преобразуется в (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 ]

2 голосов
/ 19 апреля 2011
          width = 1024;
          height = 768;

          ratio_orig = width_orig/height_orig;

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

Значения width и height в конце соответствуют ширине и высоте изображения. Это поддерживает соотношение сторон.

0 голосов
/ 19 апреля 2011

Вот алгоритм в псевдокоде.Он выберет максимально возможный размер (менее 1024x1024px), который имеет такое же соотношение ширины и высоты, что и исходное изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...