【问题标题】:Compress a Byte Array Image without Scaling using .Net C#使用 .Net C# 压缩字节数组图像而不进行缩放
【发布时间】:2016-12-02 08:21:42
【问题描述】:

我正在为服务构建一个 AngularJS 应用程序,我使用 .NET C# 进行编码。我正在从 SQL Server 检索图像作为字节数组,并将字节数组发送到 AngularJS,它会在 HTML 中显示图像。

我跟Load image from C# Byte array and place image in html tag using AngularJS帖子里的一样

但我面临数据中的性能问题。我的数据库包含字节数组大小约为。 2 到 3 MB。因此,基于 Internet 带宽,它难以加载。 那么,请帮助我如何在不缩放图像的情况下压缩字节数组?

我在网络上搜索了很多,但他们压缩的每一篇文章都根据缩放图像进行了压缩。但我需要在不缩放的情况下压缩字节数组。

【问题讨论】:

  • 你的图片是什么格式的? JPEG、PNG?那么你不会有太多的运气,因为这些格式已经在大小方面进行了非常优化
  • 我同时使用 .jpg 和 .png。

标签: c# angularjs compression bytearray image-compression


【解决方案1】:

如果您使用某些标准图像格式,例如jpegpng,您的图像已经被压缩,您无法进一步缩小它们的大小,除非您当然将它们缩小。

话虽如此,在您链接到的文章中,图像似乎是从服务器以Base64 字符串的形式通过线路发送的,这会导致巨大的开销,因为它会使它们的大小膨胀。并且图像越大,如果你对它们进行 Base64 处理,开销就越大。因此,如果您已遵循本文中的建议,则不应该这样做。相反,您应该将来自服务器的图像作为原始字节流式传输到响应正文中,并且不要使用任何 Base64 编码。然后只需使用标准的<img> 标签,其src 属性直接指向您的服务器url。因此,基本上在您的 Angular 应用程序中,您的模型不应包含您作为 AJAX 请求下载的多个 base64 字符串,而是将分配给相应图像标签 src 属性的 url 数组。

【讨论】:

  • 你能帮我如何在<img src=" " />中绑定Image Byte[]。请帮助我...
猜你喜欢
  • 2011-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多