【问题标题】:Why does ImageResizer always resize my image to 900 width?为什么 ImageResizer 总是将我的图像调整为 900 宽?
【发布时间】:2012-04-16 17:02:42
【问题描述】:

我正在使用 ImageResizer,我 nuget core 和 webconfig 包,没有更改任何设置,我只是有这行代码,

ImageBuilder.Current.Build(file, name, new ResizeSettings("maxwidth=1024&maxheight=1024"), false, true);

但是保存的图像总是有高达 900 的宽度或高度,而不是我在代码中要求的 1024,这是为什么呢?我的原图是 1600x1200,如何调整为 1024x770?

谢谢!

[由计算机语言学家编辑]

OP 正在使用 uEditor javascript 库来执行图像上传。

【问题讨论】:

  • 语言标签可能很好。
  • 我已经添加了 c# 和 asp.net-mvc 标签。

标签: c# asp.net-mvc image-processing image-resizing imageresizer


【解决方案1】:

事实证明,原始图像在发送到服务器之前已在客户端上由 uEditor javascript 库调整大小。

OP 正确使用了ImageResizer library,并且库行为正确,但它接收到的图像已经是 900 像素宽

常见调整后的图像小于所需尺寸的原因是原始图像已经小于请求的尺寸,在这种情况下 ImageResizer 将执行升级。如果要放大,请添加 &scale=both&scale=upscalecanvas

【讨论】:

  • 我对此投了反对票,因为根本无法从问题中看出你是如何得出这个答案的。我不知道您是离线讨论还是只是通灵,但在他的问题中没有提到 uEditor。这种从问题中得出的答案的神奇飞跃在大计划中并不是特别有用。我们剩下的是一个措辞不佳的问题和一个神奇的答案,对更大的社区没有多大帮助。
  • 我们通过电子邮件进行了讨论,发现问题出在其他地方。在这种情况下,什么是合适的做法?也许这个问题值得一票否决,但为什么要对答案投反对票呢?
  • 编辑问题和答案以分享您通过电子邮件获得的知识 :) 然后我会为两者投票!
  • 我编辑了这个问题,但在经过同行评审之前它不会出现。我能做的只有这么多。
【解决方案2】:

根据the documentation,纵横比由两个最大参数保持。一旦 1600 缩小到 1024,另一个方面总是比 1024 小很多。如果你想要更大,只在最小维度上设置最大值。

MaxWidth [get, set] ["maxwidth"]:设置最大期望宽度 图片。 (减去填充、边框、边距、效果和旋转)。 图像可能小于此值以保持纵横比时 指定了 maxwidth 和 maxheight。

【讨论】:

  • 我尝试仅指定宽度或使用空的 ResizeSetting(),得到相同的 900x675 结果。那么使用 ImageSizer 如何获得我正在寻找的 1024x770 的结果?
  • 感谢您修复您的答案。
猜你喜欢
  • 2018-02-24
  • 2016-05-23
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-28
  • 2022-09-04
  • 1970-01-01
相关资源
最近更新 更多