在所有Web浏览器中显示TIFF图像

时间:2010-02-01 13:38:48

标签: html image html-helper tiff

如何处理HTML页面中的TIFF文件?

我想在HTML页面中显示TIFF文件。

我尝试过使用嵌入式代码,对象ID,img等。但是我无法在HTML页面中显示图像(TIFF)。

我在项目中没有使用Java,.NET或任何其他东西。我只使用HTML。

大家好,

对于上述问题,昨天我得到了解决方案。即safari能够支持TIFF图像加载。

如何在剩余的不受支持的浏览器(IE,Mozilla,Firefox等)中加载TIFF图像

我无法安装第三方安装程序或控制器(如ActiveXController)。

请提出宝贵的建议。

先谢谢。

5 个答案:

答案 0 :(得分:58)

这归结为浏览器图像支持;看起来支持tiff的唯一主流浏览器是Safari:

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

你从哪里得到tiff图像?是否有可能以不同的格式生成它们?

如果您有一组静态图像,那么我建议您使用类似PaintShop Pro的内容批量转换它们,然后更改格式。

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

答案 1 :(得分:16)

我发现此资源详细介绍了各种方法:How to embed TIFF files in HTML documents

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

如果你发布了你已经尝试过的代码,也会有所帮助。

答案 2 :(得分:4)

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

答案 3 :(得分:2)

我可以在所有浏览器中显示tiff图像 ie浏览器默认显示tiff图像,但firefox和chrome以及其他浏览器你应该将tiff图像从img html标签转换为canvas标签。底部链接做这个转换。 请查看底部链接演示:
https://github.com/rasouliali/TiffViewer

答案 4 :(得分:2)

您可以尝试将图像从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;

    }