【发布时间】: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