在浏览器中显示多页 tiff

Cod*_*orm 1 javascript jquery tiff imagemagick

我想知道是否有任何方法可以使用客户端编码(而不是服务器端)在浏览器中显示多页 tif 图像,以便用户可以像常见的 jquery 照片库一样在页面之间导航。我从https://github.com/seikichi/tiff.js找到了 Tiff.js ,但是这个库只提供了多页 tiff 的下载链接,并且不以 html 形式显示它。

我可以在服务器端使用 ImageMagic、LibTiff.Net 等库来完成此操作,但我不想这样做,因为照片数量巨大,如果我这样做,会消耗大量服务器的 cpu

你知道有什么替代解决方案吗?

ura*_*aba 6

我也遇到了这个问题,转换图像对我们来说不是一个选择。

您可以使用链接到的 tiff.js,查看演示,然后在http://seikichi.github.io/tiff.js/multipage.html查看源代码。

$(function () {
  Tiff.initialize({TOTAL_MEMORY: 16777216 * 10});
  var xhr = new XMLHttpRequest();
  xhr.open('GET', 'images/multipage.tiff');
  xhr.responseType = 'arraybuffer';
  xhr.onload = function (e) {
    var buffer = xhr.response;
    var tiff = new Tiff({buffer: buffer});
    for (var i = 0, len = tiff.countDirectory(); i < len; ++i) {
      tiff.setDirectory(i);
      var canvas = tiff.toCanvas();
      $('body').append(canvas);
    }
  };
  xhr.send();
});
Run Code Online (Sandbox Code Playgroud)

将 'images/multipage.tiff' 替换为文件的路径,它将把每个页面添加到 body 元素中(如果您想要在其他地方使用您的元素,只需将 $('body') 替换为您的元素)。也适用于单个 tiff。