1

すべての画像形式を .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.
}
4

1 に答える 1

1

特にからgifに変換すると、品質が低下することは避けられないと思います

JPEG と PNG。これは、Gif が 8 ビット形式であるためです。つまり、形式でサポートされる色の最大数は 256 です。

そのため、近似のため、色の違いで細かい色合いが失われる場合があります。

GIF は、線画や単純な漫画など、色の数が少ない画像用です。

それでも C# コードに疑問がある場合は、このオンライン画像コンバーターにアクセスして品質を確認できます。

于 2012-07-11T12:41:34.320 に答える