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

Tod*_*ain 8 .net png jpeg image

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

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

我通常在回答这类问题时看到看到的是" 好吧,如果图片是照片,请使用JPEG "或" 如果它有直线,则PNG更好".不幸的是,我根本无法查看任何图像文件,并希望通过代码只是一种标准的方式来做到这一点,即使这是一个数以万计的if/then语句.

围绕这个主题是否有任何标准或最佳实践?

Dav*_*ary 5

能够工作最简单的事情是"把所有的细节"("100%的质量"),即,总是使用PNG而不是JPEG.

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

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