Javascript 在浏览器中显示多页tiff
我想知道是否有任何方法可以使用客户端编码(而不是服务器端)在浏览器中显示多页tif图像,用户可以像常见的jquery照片库一样在页面之间导航。我从中找到了Tiff.js,但是这个库只提供了多页Tiff的下载链接,没有在html中显示 我可以在服务器端使用ImageMagic、LibTiff.Net等库来完成这项工作,但我不想这样做,因为照片数量太多,如果我这样做的话,会消耗大量服务器的cpuJavascript 在浏览器中显示多页tiff,javascript,jquery,imagemagick,tiff,Javascript,Jquery,Imagemagick,Tiff,我想知道是否有任何方法可以使用客户端编码(而不是服务器端)在浏览器中显示多页tif图像,用户可以像常见的jquery照片库一样在页面之间导航。我从中找到了Tiff.js,但是这个库只提供了多页Tiff的下载链接,没有在html中显示 我可以在服务器端使用ImageMagic、LibTiff.Net等库来完成这项工作,但我不想这样做,因为照片数量太多,如果我这样做的话,会消耗大量服务器的cpu 您知道其他解决方案吗???浏览器不支持tif图像。 看看这个。 您必须生成png图像并将其存储,然后在浏
您知道其他解决方案吗???浏览器不支持tif图像。 看看这个。
您必须生成png图像并将其存储,然后在浏览器中显示tif。浏览器不支持tif图像。 看看这个。
您必须生成png图像并将其存储,然后在tif的浏览器中显示。我也有这个问题,转换图像不是我们的选择 您可以使用链接到的tiff.js,查看演示,然后查看源代码
$(函数(){
初始化({总内存:16777216*10});
var xhr=new XMLHttpRequest();
xhr.open('GET','images/multipage.tiff');
xhr.responseType='arraybuffer';
xhr.onload=函数(e){
var buffer=xhr.response;
var tiff=新的tiff({buffer:buffer});
对于(var i=0,len=tiff.countDirectory();i
将“images/multipage.tiff”替换为文件的路径,它会将每个页面添加到body元素中(如果您希望将$(“body”)替换为其他元素)。也适用于单个tiff。我也有这个问题,转换图像不是我们的选择 您可以使用链接到的tiff.js,查看演示,然后查看源代码
$(函数(){
初始化({总内存:16777216*10});
var xhr=new XMLHttpRequest();
xhr.open('GET','images/multipage.tiff');
xhr.responseType='arraybuffer';
xhr.onload=函数(e){
var buffer=xhr.response;
var tiff=新的tiff({buffer:buffer});
对于(var i=0,len=tiff.countDirectory();i
将“images/multipage.tiff”替换为文件的路径,它会将每个页面添加到body元素中(如果您希望将$(“body”)替换为其他元素)。也适用于单个tiff。将所有多页的
tiff
s预处理为png
s并存储它们。给出一个页面,其中有几个隐藏的位置:固定的
s,并在JS中取消隐藏它们。这不是一个非常优雅的选项,但非常健壮,具有良好的浏览器支持。或者使用ImageMagick或任何其他工具将tiff直接预处理为PDF,并在客户端使用PDF.js处理显示。无论是服务器端还是客户端都必须进行处理。另外,我们讨论的是网页预览,我想高分辨率不是很需要。将所有多页的tiff
s预处理为png
s并存储它们。给出一个页面,其中有几个隐藏的位置:固定的
s,并在JS中取消隐藏它们。这不是一个非常优雅的选项,但非常健壮,具有良好的浏览器支持。或者使用ImageMagick或任何其他工具将tiff直接预处理为PDF,并在客户端使用PDF.js处理显示。无论是服务器端还是客户端都必须进行处理。此外,我们正在谈论的网页预览,我想高分辨率是不太需要的。
$(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();
});