【问题标题】:How to show multiple page `.tif` file on Internet Explorer?如何在 Internet Explorer 上显示多页“.tif”文件?
【发布时间】:2015-06-02 05:43:58
【问题描述】:

我的要求是在浏览器上显示.tiff 图像。所以目前我在 Internet Explorer 上使用img 标记显示tiff 文件,如下所示。

<img src="myTiff.tif" type="image/tiff" alt="My Tiff">

它与只有单页的 tif 文件完美配合。如果.tif 中有多个页面,那么img 标签只显示第一张图片。用户无法获得查看其他图像的选项。

Sample tiff image

我已经尝试了here建议的所有选项

我在服务器端使用 C#,在前端使用 AngularJS。任何帮助将不胜感激。谢谢:)

编辑

使用 AltraTiff 插件会更好吗?我看起来像是在使用 Internet Explorer。

【问题讨论】:

  • 你可以使用谷歌文档吗?
  • 哎哟。 JavaScript 在 Chrome 中工作,但在 IE 中似乎不工作
  • 我知道。我认为您可能是-SOL- 无法仅使用客户端。按照建议,使用指向服务器的链接逐页请求它
  • @pankajparkar 看看这个davidloo.com/?p=15

标签: javascript asp.net internet-explorer tiff


【解决方案1】:

内容呈现始终是浏览器的职责,因此您依赖它的功能。

也许某些浏览器有一些插件支持多页 tiff,但是,如果您无法控制客户端中安装的软件,我认为您最好的选择是通过分离页面服务器端来实现一些分页。

您可以使用 imagemagick 轻松实现。

唯一的缺点是,如果用户尝试下载它,它只会下载他当前正在查看的单个页面。

但是您可以通过提供单独的下载链接或简单地将完整版链接到显示的图像来缓解它。使用 jQuery 的示例:

<div id="tiffPager">
    <a href="myTiff.tif">
        <img width=200 height=200 data-pageCount=5 src="myTiff_page0.tif" alt="My Tiff">
    </a>
    <button class="pageBack">&lt;&lt;</button>
    <button class="pageForward">&gt;glt;</button>
</div>
<script>
    $(function(){
        var container = $("div#tiffPager");
        var img = $("img", container);
        var backBtn = $("button.pageBack", container);
        var fwBtn = $("button.pageForward", container);
        var pgCount = img.data("pageCount");
        var currPage = 0;

        backBtn.on("click", function(){
            currPage = (currPage + 1) % pgCount; // Cycle though pages.
            img.attr("src", "myTiff_page" + currPage + ".tif");
        });
        fwBtn.on("click", function(){
            currPage = (currPage - 1) % pgCount; // Cycle though pages.
            img.attr("src", "myTiff_page" + currPage + ".tif");
        });

    });
</script>

【讨论】:

  • 您还有其他选择吗..请建议。 :(
  • 你说你“不想使用第三方插件”,没有关于 javascript,顺便说一下,@mplungjan 和我回答你:除非在企业环境中你可以决定每个客户软件,您无法控制客户端如何呈现任何内容类型。有些人可以使用一些允许 tiff 分页的插件,但大多数人不会。你也可以等待大约十年再检查一次......也许你会走运;-)
  • @bitfet 是的,你是对的..我应该最终得到这个插件..在.Net 中支持imagemagick 还是我应该参考一个不同的插件
  • 我不知道。我通常使用控制台可执行文件在某个临时目录中生成文件。然后,您可以将它们用作缓存,方法是将其 mtime 与原始图像进行比较,并且可以选择删除时间过长的。
  • 感谢您的宝贵帮助和时间。+1 为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-09
  • 2011-02-20
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 2010-10-08
相关资源
最近更新 更多