.net - 以编程方式选择图像转换格式为 JPEG 或 PNG 以用于 Silverlight 显示

标签 .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 语句。

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

最佳答案

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”)?
  • 关于.net - 以编程方式选择图像转换格式为 JPEG 或 PNG 以用于 Silverlight 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2823843/

    相关文章:

    android - 如何在方向更改期间将图像保留在 Android Activity 中?

    php - 如何在 PHP 中调整具有透明度的 png 大小?

    laravel - 用于存储 jpg 的 Docker 卷使用情况

    c# - 如何获取 WPF 用户控件可见部分的大小?

    c# - 托管 CLR 与使用 ClrCreateManagedInstance - 有什么好处?

    c# - HTTP/2 与 ASP.NET Core 2.2

    javascript - 使用变量设置 <Image/> 的源

    c# - 私有(private)只读接口(interface)——它是多余的吗?

    image - 用浮点值写入图像

    opengl - OpenGL 绘图库