javascript - 使用 JavaScript 解码图像

标签 javascript image jsp base64

我从 JSP 页面生成了一些 JavaScript,如下所示:

var elem = document.getElementById("image");
elem.src = "Image?step="+step;

当用户单击按钮时,将调用上面的代码片段,并且 step 是一个变量,该变量会随着该函数的每次运行而增加。 Image 是一个生成 PNG 编码图像的 Servlet。

这可行,但速度非常慢,因为服务器必须在客户端需要时生成图像。我知道我可以预加载图像,但我想到了更好的解决方案。因为我知道允许多少步,所以我想到在请求页面时生成图像,并将它们嵌入到 JavaScript 中,也许是 Base64 编码,以便可以在所有操作系统上查看图像。

可以这样做吗?如果是,我该如何实现?我不想使用像 jQuery 这样的外部 JavaScript 框架,也不关心那些不太常见的浏览器,只要它能与 Mozilla 浏览器和 Google Chrome 兼容就足够了。

最佳答案

如果您只想将图像源嵌入到 HTML 页面中,可以执行以下操作:

<img id="image" src="" width="100" height="100" alt="" />

<script type='text/javascript'>/* <![CDATA[ */
    var img = '<?php echo base64_encode(file_get_contents('/path/file.png')); ?>'
    document.getElementById('image').src = "data:image/png;base64," + image;
/* ]]> */</script>    

几乎所有浏览器都支持此功能:http://caniuse.com/#feat=datauri ... IE 的“部分支持”意味着它仅限于图像和 CSS,但我们在这里所做的就是图像。

示例:http://jsfiddle.net/m869e2ar/1/

关于javascript - 使用 JavaScript 解码图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25836386/

相关文章:

javascript - 通过 jQuery animate 减慢滚动到顶部事件

javascript - 是否有与 .get() 类似的方法但返回 jQuery 对象而不是 DOM 对象的方法?

image - 合并一个音频文件和一个图像文件,用 ffmpeg 创建一个视频

javascript - IIS 7.5 没有图像 css js 显示

java - Apache Shiro + 身份验证问题

java - 使用 <a href> 将值从 jsp 传递到 servlet

javascript - div 淡出后点击显示返回 div

javascript - 如何在 ExpressJS 中处理全局数据

css - 背景图片不显示 CSS

java - 如何在java中获取表格内容值?