首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保证上传图片文件的质量?

如何保证上传图片文件的质量?
EN

Stack Overflow用户
提问于 2019-02-23 21:04:51
回答 1查看 210关注 0票数 0

我有一个使用C#语言的asp.net MVC5应用程序,其中一个网页让用户上传具有不同宽高比的不同尺寸的图像文件。

上传的图像文件将显示在另一个固定尺寸的网页上:w= 130px,高度= 23px,以及<img src="xyz..." style="width:130px; height:23px" />等HTML img标签

当用户的原始图片文件具有不同的尺寸和宽高比时,如何使用特定的逻辑或算法编写C#代码,将上传的图片文件相对于那些固定尺寸(130px X 23px)和宽高比为5.65 ( 130/23 )的图片文件保存在服务器上?上传图片的质量应该是好的。

请看附件中的屏幕截图。顶部的蓝色图像是用户的原始图像文件,具有不同的尺寸和纵横比。底部的红色图像是上传到服务器的图像文件,具有固定的尺寸和纵横比。

图像文件可以是png、gif、jpg、bmp。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-02-23 22:32:07

调整图像大小时,除非它是矢量图形,否则总是会失去质量。遗憾的是,它们大多不是矢量图形。

放大

假设你有一个5px×5px的图像,你想把它放大到10px×10px,那么75个新像素从哪里来?是的,它需要以某种方式来弥补。存在不同的算法来组成这些新的像素,如最近邻,双线性,双三次等。一些工具甚至具有锐化功能。

缩容

如果你有一个5px×5px的图像,你想把它缩小到2px×2px,你会丢失21个像素。

更多信息

因此,你总是会失去质量,但技巧可以用来使它看起来,在肉眼看来,就像没有像素丢失或添加。记住一条简单的规则,永远不要超过300%,否则你会开始注意到质量下降。此外,最好从较大的图像开始,因此要求用户上传较大的图像,以便您可以缩小规模。

我使用一个名为ImageResizer的c#库来调整大小。它以NuGet包的形式提供。

在Apache2许可下,

的ImageResizer v4核心库和必备版中的18个插件是免费的,并且是开源的。

请参阅许可中的overview

如果您对算法感兴趣,请参阅this文章。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54841930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档