如何在所有 Web 浏览器中显示 TIFF 图像? [关闭]

Posted

技术标签:

【中文标题】如何在所有 Web 浏览器中显示 TIFF 图像? [关闭]【英文标题】:How would I display a TIFF images in all web browsers? [closed] 【发布时间】:2011-01-11 17:31:02 【问题描述】:

如何处理 html 页面中的TIFF 图像?

我尝试过使用嵌入标签、对象 id、img 等。但是,我无法在 HTML 页面中显示 TIFF 图像。

我没有在我的项目中使用 Java、.NET 或任何其他替代方案。

更新: Safari 支持 TIFF 图像加载。如何在其他浏览器(IE、Mozilla、Firefox 等)中加载 TIFF 图像?

【问题讨论】:

【参考方案1】:

您可以尝试将图像从 tiff 转换为 PNG,方法如下:

import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageDecoder;
import com.sun.media.jai.codec.ImageEncoder;
import com.sun.media.jai.codec.PNGEncodeParam;
import com.sun.media.jai.codec.TIFFDecodeParam;
import java.awt.image.RenderedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import javaxt.io.Image;

public class ImgConvTiffToPng 
 
    public static byte[] convert(byte[] tiff) throws Exception 

        byte[] out = new byte[0];
        InputStream inputStream = new ByteArrayInputStream(tiff);

        TIFFDecodeParam param = null;

        ImageDecoder dec = ImageCodec.createImageDecoder("tiff", inputStream, param);
        RenderedImage op = dec.decodeAsRenderedImage(0);

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

        PNGEncodeParam jpgparam = null;
        ImageEncoder en = ImageCodec.createImageEncoder("png", outputStream, jpgparam);
        en.encode(op);
        outputStream = (ByteArrayOutputStream) en.getOutputStream();
        out = outputStream.toByteArray();
        outputStream.flush();
        outputStream.close();

        return out;

    

【讨论】:

从哪里下载com.sun.media.jai.codec?我试图在网上寻找它,但没有 JAR @roeygol 它来自oracle.com/technetwork/java/javasebusiness/downloads/…已停产的Java Advanced Imaging SDK【参考方案2】:

Tiff 图像只能直接显示在 IE 和 safari 上。不支持 chrome 和 firefox 上的 tiff 图像。您可以对图像进行编码,然后通过将编码的图像解码为其他格式将其显示在浏览器上。 希望这对你有用

【讨论】:

能否提供任何来源,以防此信息过时?【参考方案3】:

这归结为浏览器图像支持;看来支持 tiff 的主流浏览器只有 Safari:

http://en.wikipedia.org/wiki/Comparison_of_web_browsers#Image_format_support

您从哪里获得 tiff 图像?是否可以以不同的格式生成它们?

如果您有一组静态图像,那么我建议您使用 PaintShop Pro 之类的东西来批量转换它们,更改格式。

如果这不是一个选项,那么寻找可以在浏览器中显示图像的预先编写的 Java 小程序(或其他浏览器插件)可能会花费一些时间。

【讨论】:

+1 TIFF 在浏览器中是不确定的——对于 CMYK 更是如此。我建议转换为 JPG 或 PNG。 我只将 TIFF 图像保存在本地系统中。根据规范,我不应该转换成另一种格式。 根据浏览器中的图像格式支持,我可以使用 safari 来显示 TIFF 图像。对吗? @ashok:***页面声称 Safari 可以渲染 TIFF 图像。我建议下载它(假设您使用的是 Windows)并尝试一下。 apple.com/safari/download Chrome 扩展程序:chrome.google.com/webstore/detail/inline-tiff-viewer/…【参考方案4】:

我找到了详细介绍各种方法的资源:@​​987654321@

如前所述,它在很大程度上取决于浏览器对格式的支持。在 Windows 上的 Chrome 中查看该页面未显示任何图像。

如果您发布您已经尝试过的代码也会很有帮助。

【讨论】:

很抱歉,它会很大。所以我只发布图像加载部分 1) apple.com/qtactivex/qtplugin.cab"> 2) 就这样 它在最近的 Chrome 中不起作用,因为它说:此站点使用不受支持的插件(图像/tiff)

以上是关于如何在所有 Web 浏览器中显示 TIFF 图像? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何让 IE6 认真对待 ContentType?

在 .NET 2.0 中将位图转换为一个多页 TIFF 图像

如何在 R 中保存与输入 tiff 完全相同尺寸的 tiff 背景图像

ImageJ 16 位照片到 tiff 值

如何将 tiff 图像保存到新的 npy 文件中?

如何在 iPad 上创建 TIFF