100

HTML ページでTIFF画像を処理するにはどうすればよいですか?

埋め込みタグ、オブジェクト ID、img などを使用してみましたが、HTML ページに TIFF 画像を表示できません。

私のプロジェクトでは、Java、.NET、またはその他の代替手段を使用していません。

更新: Safari は TIFF 画像の読み込みをサポートしています。他のブラウザー (IE、Mozilla、Firefox など) で TIFF 画像を読み込むにはどうすればよいですか?

4

4 に答える 4

78

これはブラウザの画像サポートに帰着します。tiff をサポートしている主流のブラウザーは Safari だけのようです。

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

ティフ画像はどこから入手していますか?それらを別の形式で生成することは可能ですか?

静的な画像セットがある場合は、PaintShop Proなどを使用してバッチ変換し、形式を変更することをお勧めします。

これができない場合は、ブラウザで画像を表示できる、事前に作成された Java アプレット (または別のブラウザ プラグイン) を探すのにいくらかの距離があるかもしれません。

于 2010-02-01T13:42:01.863 に答える
16

さまざまな方法について詳しく説明している次のリソースを見つけました: HTML ドキュメントに TIFF ファイルを埋め込む方法

前述のように、フォーマットに対するブラウザのサポートに大きく依存します。Windows の Chrome でそのページを表示しても、画像は表示されませんでした。

すでに試したコードを投稿していただけると助かります。

于 2010-02-01T13:44:09.623 に答える
4

Tiff 画像は、IE と Safari でのみ直接表示できます。Chrome と Firefox では、Tiff 画像はサポートされていません。画像をエンコードしてから、エンコードされた画像を他の形式にデコードすることでブラウザに表示できます。これがうまくいくことを願っています

于 2015-01-28T09:47:45.317 に答える
3

画像を 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;

    }
}
于 2017-05-16T21:51:55.297 に答える