【发布时间】:2009-12-18 03:58:33
【问题描述】:
我创建了一个交互式图像的东西...但是加载时间太长了。
交互式图像的东西位于:
southernwindowdesign.com
它使用 5 张图像来逐步浏览每个状态(通过单击和拖动)。我想保持图像的高质量;因此,任何进一步的 jpeg 压缩都已结束(包括 punypng 和 smush.it)。
有什么减少加载时间的想法吗?我愿意冒险使用数据 URI、画布、PNG compression (cool) 等。
任何想法或建议都会有所帮助。
更新: 感谢所有给出建议的人,如果我使用了你给出的建议,我给了你一个加分。 我已经设置了另一个静态子域 (s2),它应该在接下来的几个小时左右传播。今天晚些时候,我可能会将一些图像切换到这个新的子域。 我还更改了加载图像的顺序,并在这里和那里进行了一些其他优化。
我希望有人知道如何利用每张图像中的冗余像素。有没有办法将所有图像编码到一个文件中,并以某种巧妙的方式使用 javascript 画布的 getImageData() 将它们读出?
我在http://www.eswd.com/southern/test.jpg 上尝试了getImageData 方法,由于jpeg 的无损(质量=100 != 100%),得到了这个:http://www.eswd.com/southern/test.aspx。这不好。使用相同的技术将图像保存为 PNG 会导致文件大小大于包含所有数据的 jpeg(无红色边框)。
我正在考虑尝试使用 .APNG 并以这种方式读取像素数据...但由于该格式处于开发的早期阶段,它似乎根本不会缩小文件大小...而且我不确定画布是否可以让我读取动画中的各个 PNG 帧。
【问题讨论】:
-
FWIW,我知道你说任何进一步的压缩都已经结束了......但我真的认为你的 jpg 文件比他们需要的要大得多。我能够从 step1.jpg 单独保存近 370k,没有明显差异。 (Photoshop CS2,保存到网络 60%,良好的眼睛,伽马校准,环境照明等)我相信你也可以从其他显示图像中减少很多。只是需要推送大量数据。
-
我同意 zen - 第一张图片 (541kb) 我花了 3 秒时间加载。
标签: javascript optimization canvas lossless-compression