如何从c#放大图像(任何类型)而不会丢失质量

img*_*alt 2 c# asp.net image c#-4.0

问题说这一切......

应用程序将在asp.net和c#(4.0)

jas*_*son 8

这是不可能的.试想一下10位10位色彩的非常简单的情况.因此,有10*10*8 = 800位的信息.现在尝试将其放大为具有8位颜色的100 x 100位图.这需要80000位信息.这些额外信息将来自哪里?有各种各样的插值方案可以尝试猜测信息应该是什么,但这是我们能做的最好的.必须有质量损失,因为我们不知道应该是什么信息.

以下是一些插值方案:

  1. 最近的邻居
  2. 双线性
  3. 双立方
  4. hq2x

这些方法具有不同的品质.一些导致锯齿状(最近邻居),另一些导致图像软化(双线性),而另一些导致振铃伪影(双三次).


Dav*_*sky 6

如果将图像放大到原始尺寸以外,则会降低图像质量.没有办法解决这个问题.

也就是说,存在用于调整大小的不同方法/算法,其中一些可能引入比其他方法更低的质量降级.尝试调整大小参数以找出最适合您情况的参数.