浏览器对图像格式的支持很差。实际上只支持GIF,JPG,PNG和WebP。
我想要一个新的:JBIG2
从最终用户的角度来看,他只会下载并安装Chrome扩展程序,他的浏览器将能够解码新的图像格式。
从Web开发人员的角度来看,新格式将是透明的,并与标记img,canvas和css兼容。为了显示JBIG2图像,他仍然使用:
<img src=“path/to/myImage.jbig2”>
或
var myImage = new Image();
myImage.addEventListener( 'load', function() {
// insert in canvas, when image is loaded
});
myImage.src = 'path/to/myImage.jbig2';
或
.my-class {
background-image: url( “path/to/myImage.jbig2”);
}
问题不在于解码器本身。我预见到使用用C语言编写的JBig2dec。
问题是如何实现新的图像解码器? 在Chrome中,当我们必须运行C代码时,最佳解决方案是使用Native Client Extension。
更好的是,我可以阅读这个NaCl网页:
图形,音频等等:运行本机代码模块,可呈现2D和3D图形,播放音频,响应鼠标和键盘事件,在多个线程上运行,以及直接访问内存要求用户安装插件。
多媒体应用程序:可以在Native Client模块中将用于处理声音,图像和影片的编解码器添加到浏览器中。
但遗憾的是,没有任何文档可用于实现2D图形解码器。我猜我需要register an hook for the minetype image / jbig2。
有人知道如何使用NaCl实现新的图像格式解码器吗?
答案 0 :(得分:2)
是的,我认为您所描述的解决方案大部分都有效,但您可能需要使用<embed src="..." type="image/jbig2">
代替<img>
来加载图片。
基本上,你会: