以编程方式选择图像转换格式为JPEG或PNG以进行Silverlight显示

时间:2010-05-13 01:00:18

标签: .net image png jpeg

我有一个项目,我需要将大量图像类型转换为可在Silverlight应用程序中显示 - TIFF,GIF,WMF,EMF,BMP,DIB等。我可以在保湿之前在服务器上进行这些转换Silverlight应用程序。

但是,我不确定何时应该选择转换为JPG或PNG格式。是否有某种标准,如TIFF应始终是JPEG和GIF应始终是PNG。或者,如果BMP是24位,它应该转换为JPEG - 任何更低,它可以是PNG。或者一切都是PNG和为什么

我通常seesee对此类问题的回答是“嗯,如果图片是照片,请使用JPEG ”或“如果它有直线,PNG更好。“不幸的是,我根本无法查看任何图像文件,并且只想通过代码执行此操作,即使这是一个非常多的if / then语句。

围绕此主题是否有任何标准或最佳做法?

3 个答案:

答案 0 :(得分:5)

simplest thing that could possibly work是“保留所有细节”(“100%质量”),即始终使用PNG而不是JPEG。

PNG图像看起来总是与原始图像相同(它是无损的)。 JPG图像通常与原始图像大致相同,但在某些图像(如艺术线条)上,JPG会产生奇怪的压缩效果(它有损)。

  • 将JPEG图像转换为PNG图像无效。因此直接传递JPEG文件而不进行转换。如果TIFF容器文件包含JPEG图像,则将其提取为标准JPEG格式文件;否则最好将该TIFF文件转换为PNG。
  • 考虑制作JPEG文件和PNG文件;如果JPEG文件“明显”小于PNG文件,请使用JPEG文件。
  • “。emf”和“.wmf”本质上是基于矢量的,而不是光栅图形。对于矢量图形,PNG优于JPEG,但最好是矢量文件格式。是否可以使用标准矢量图形格式(“.svg”)?

答案 1 :(得分:1)

JPG优于PNG的一大优势是JPG在图片大小和质量之间提供了良好的平衡。如果文件大小不是问题,那么PNG可能是要走的路,因为它提供了比JPG更多的灵活性。但这并不能真正回答你的问题。

答案 2 :(得分:1)

您可以使用Smush.it之类的服务 - 它会告诉您图像的最佳优化格式,并为您运行压缩。

如果我没记错的话,他们会对每张图片进行所有压缩,然后比较结果......返回最佳图片。