【问题标题】:What would be a good way to scale images in C#?在 C# 中缩放图像的好方法是什么?
【发布时间】:2011-01-24 23:16:37
【问题描述】:

我有一个网站,其中包含很多项目,每个项目都包含一个侧边栏。

在此边栏中,可以将图像附加到项目中。附加的图像将显示在一个画廊中,底部有 3 个小拇指,画廊顶部有一个较大的图像。当访问者点击图库底部的小拇指时,大图将刷新为另一张图。

拇指没问题,显示正确。

我的问题是画廊顶部的较大图像。上传的图片有多种尺寸,而我的支架宽度为 239,高度为 179。缩放图片以便正确显示给网站访问者的最佳方法是什么?

感谢 Zapping(此代码对我有用):

int sourceWidth = imgToResize.Width;
   int sourceHeight = imgToResize.Height;

   float nPercent = 0;
   float nPercentW = 0;
   float nPercentH = 0;

   nPercentW = ((float)size.Width / (float)sourceWidth);
   nPercentH = ((float)size.Height / (float)sourceHeight);

   if (nPercentH < nPercentW)
      nPercent = nPercentH;
   else
      nPercent = nPercentW;

   int destWidth = (int)(sourceWidth * nPercent);
   int destHeight = (int)(sourceHeight * nPercent);

【问题讨论】:

    标签: c# image scaling image-scaling


    【解决方案1】:

    您可以在保持纵横比的情况下调整图像大小并重新保存。或者,如果您想保持相同的图像,那么您可以找出新的高度和宽度,保持纵横比,并将其相应地应用于 img 标签的高度和宽度属性。

    您可以使用这些来调整图像大小或查找高度和宽度。
    http://snippets.dzone.com/posts/show/4336
    http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing

    如果您决定保留较大尺寸的图像,您也可以尝试一些平移操作
    How to zoom in and zoom out image using jquery?

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        比例缩放也可以通过 CSS 来完成。考虑一个 100px 宽 x 200px 高的图像。

        <img src="image.png" style="max-width:50;max-height:50;">
        

        将图像放入 50x50 像素的框内,即生成 25x50 像素的图像。类似地,

        <img src="image.png" style="min-width:500;min-height:500;">
        

        将产生和图像 500x1000px。

        你的情况

        <img src="image.png" style="max-width:239;max-height:179;">
        

        这对您来说可能是一个很好的解决方案,因为您的图像很小,而且无论如何您都将加载缩略图和图像,也可能是相同的图像,节省带宽并利用缓存。

        【讨论】:

          猜你喜欢
          • 2010-10-23
          • 1970-01-01
          • 2018-10-13
          • 2010-09-11
          • 2010-09-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多