gpt4 book ai didi

c# - 如何在 C# 中调整图像大小同时保持高质量?

转载 作者:行者123 更新时间:2023-12-03 21:50:21 30 4
gpt4 key购买 nike

我从这里找到了一篇关于图像处理的文章:http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing一切正常。

我想在调整图像大小时保持高质量。我想如果我能增加 DPI 值我就能实现这个目标。有谁知道这是否可能?如果是这样,我如何在 C# 中实现它?

最佳答案

对于初学者来说,值得指出的是,图像有两大类:向量[例如SVG、WMF、Adobe Illustrator 和 Corel Draw Graphics] 和位图(也称为光栅)图像 [例如位图、JPEG 和 PNG 图像]。

矢量图像是由一系列数学方程和/或计算形成的。另一方面,位图图像由各个点(像素)组成,每个点对应于拍摄图像的对象上的特定特征。

如果您想要调整图像大小,首先要考虑的是它是位图还是矢量图像。由于矢量图像是通过计算获得的,因此可以完美地调整它们的大小而不会丢失任何细节。位图图像的情况有所不同。由于每个像素彼此独立,因此当您想要调整其大小时,只需增加或减少源与目标像素的比率即可。

因此,为了将矢量图像的大小加倍,只需将目标尺寸乘以两倍即可,一切正常。如果您应该对位图应用相同的效果,则实际上会增加每个源像素以覆盖四个像素(两行,每行两个水平像素)。

当然,通过应用插值和过滤,计算机可以“平滑”目标像素的边缘,使它们看起来相互融合并给出合理调整大小的图像的外观,但此输出与调整矢量图像的大小;矢量图像完美调整大小。

您还在问题中提到了DPI。 DPI 本质上是在打印图像时而不是在屏幕上查看图像时对应于一英寸的像素数。因此,通过增加图像的 DPI,您不会增加屏幕上图像的尺寸。您只会提高打印质量[不用说,这取决于打印机的最大分辨率]。

如果您确实想要调整图像大小,并且图像是位图,则根据经验,请勿将大小增加到超过原始图像大小的 200%,否则您将失去质量。

您可以看到this answer用于调整位图图像大小的代码。

要查看示例矢量图像,请转至 this link .
注意尝试放大和缩小图像以查看其调整大小的效果。

典型的位图是 StackOverflow sprites 。他们不会调整质量。


进一步阅读

关于c# - 如何在 C# 中调整图像大小同时保持高质量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4941822/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com