在所有web浏览器中显示tiff图像

gijlo24d  于 2021-07-24  发布在  Java
关注(0)|答案(4)|浏览(707)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

一年前关门了。
改进这个问题
如何处理html页面中的tiff文件?
我想在我的html页面中显示一个tiff文件。
我试过使用嵌入式标签,对象id,img等,但我无法显示图像(tiff)在html页面。
我没有在我的项目中使用java、.net或任何其他东西。我只使用html。
更新:safari支持tiff图像加载。如何在其他浏览器(ie、mozilla、firefox等)中加载tiff图像?
我无法安装第三方插件或控制器(如activexcontroller)。

rn0zuynd

rn0zuynd1#

这归结为浏览器图像支持;看起来唯一支持tiff的主流浏览器是safari:
http://en.wikipedia.org/wiki/comparison_of_web_browsers#image_format_support
你从哪里得到的tiff图像?它们是否可能以不同的格式生成?
如果你有一组静态的图像,那么我建议你使用paintshop pro之类的工具来批量转换它们,改变格式。
如果这不是一个选项,那么在寻找一个可以在浏览器中显示图像的预先编写的javaapplet(或另一个浏览器插件)时可能会有些困难。

v7pvogib

v7pvogib2#

我发现这个资源详细介绍了各种方法:如何在html文档中嵌入tiff文件
如前所述,它在很大程度上取决于浏览器对格式的支持。在windows上的chrome中查看该页时,没有显示任何图像。
如果你发布了你已经尝试过的代码也会很有帮助。

yacmzcpb

yacmzcpb3#

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

uqcuzwp8

uqcuzwp84#

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

    }

相关问题