【问题标题】:Losing image quality while changing format of image更改图像格式时降低图像质量
【发布时间】:2012-07-11 20:41:34
【问题描述】:

我正在努力将所有图像格式更改为 .gif 格式,但更改为新格式后它的质量有所下降。我使用以下代码更改格式。

String paths = HttpContext.Current.Request.PhysicalApplicationPath + "DesktopModules\\DNAiusParallelSlider\\Images\\"+ModuleId.ToString()+"\\";
if (FileUpload2.HasFile)
{
    string extension = Path.GetExtension(FileUpload2.PostedFile.FileName);
    FileUpload2.SaveAs(paths + "waves" + extension);
    System.Drawing.Image image1 = System.Drawing.Image.FromFile(@paths + "\\waves" + extension);
    System.Drawing.Image img = System.Drawing.Image.FromFile(@paths + "\\waves" + extension);
    if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
    {
        image1.Save(@paths + "\\waves.gif", System.Drawing.Imaging.ImageFormat.Gif);
    }
    if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp))
    {
        image1.Save(@paths + "\\waves.gif", System.Drawing.Imaging.ImageFormat.Gif);
    }
    if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png))
    {
        image1.Save(@paths + "\\waves.gif", System.Drawing.Imaging.ImageFormat.Gif);
    }
    if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Tiff))
    {
        image1.Save(@paths + "\\waves.gif", System.Drawing.Imaging.ImageFormat.Gif);
    }
    if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Emf))
    {
        image1.Save(@paths + "\\waves.gif", System.Drawing.Imaging.ImageFormat.Gif);
    }
    if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Wmf))
    {
        image1.Save(@paths + "\\waves.gif", System.Drawing.Imaging.ImageFormat.Gif);
    }
    // Save the image in PNG format.
}

【问题讨论】:

  • 可能是因为GIF格式只支持256色。
  • 另外,请记住 jpeg 和(据我所知)wmf 和 emf 格式是有损的,并且在您首先保存它们时会降低质量。此外,将 jpeg 保存为 gif 是浪费压缩算法潜力的好方法。

标签: c# image-processing image-formats


【解决方案1】:

我认为在转换为 gif 时不可避免地会丢失质量,尤其是从

JPEG 和 PNG。这是因为 Gif 是 8 位格式,这意味着该格式支持的最大颜色数为 256。

因此,您可能会因为近似而失去颜色差异的精细阴影。

GIF 适用于只有几种不同颜色的图像,例如线条图和简单的卡通。

如果你仍然怀疑你的c#代码,你可以去this online image converter检查质量。

【讨论】:

    猜你喜欢
    • 2021-05-09
    • 2019-08-23
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 2010-11-12
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多