【问题标题】:Is there any method to shorten image data URI using javascript/jquery?有什么方法可以使用 javascript/jquery 缩短图像数据 URI?
【发布时间】:2015-05-28 05:29:03
【问题描述】:

我已使用 jquery 将画布图像转换为数据 URI,但数据 URI 太长,例如大约 800,000 个字符。

有什么方法可以减少/缩短数据 URI 的长度吗?

我需要通过 GET/POST 方法发送图像数据,但我收到一条错误消息,提示字符串长度太长

【问题讨论】:

  • 您遇到了什么问题导致 URI 过长?
  • 我需要通过 GET/POST 方法将图像数据 URI 作为附件发送,但我收到一条错误消息,提示字符串长度过长
  • 为什么不能只发送二进制数据?
  • 800k 个字符大约是 780 KB 的数据,即 0.76 MB,这对于 POST 请求来说根本不成问题。

标签: javascript jquery data-uri


【解决方案1】:

canvas.toDataURL() 支持不同的图像类型。您可以尝试不同的格式或使用 jpg 并降低质量:

例如100% 质量:

canvas.toDataURL("image/jpeg", 1.0)

或 50%:

canvas.toDataURL("image/jpeg", 0.5)

这应该会减小图像大小,从而减少图像数据量。

【讨论】:

  • 您将无法合理减少数据量。正如其他 cmets 中已经建议的那样:如果您使用 POST 进行传输,那应该不是问题
【解决方案2】:

你不能。因为这是canvasimagedata(这是一个base64字符串)。如果你减少它,一些数据可能会丢失。Base64本身是相当压缩的。你可以查看JavaScript implementation of Gzip

您可以尝试调整图像质量,即(图像/jpeg,值从 0-1) 但这不会在很大程度上减少它。

【讨论】:

    猜你喜欢
    • 2011-04-27
    • 2021-05-17
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    相关资源
    最近更新 更多