2

Javaでは、CCIT圧縮TIFファイルにさらに変換するために、jpeg、gif、またはpng形式の受信ファイルを2レベルバージョンに変換する必要があります。tifファイルを取り出すことはできますが、圧縮することはできません。私は、JAI、圧縮、または画像形式のいずれの専門家でもありません。どんな助けでも大歓迎です。(私はこのトピックを数時間グーグルで検索しましたが、私が理解している例を見つけることができません。)

    String inFile = "myFile.jpg"
    String newFileName = "myFile.tif"; 
    FileOutputStream out = new FileOutputStream(newFileName);

    RenderedOp src = JAI.create("fileload", inFile);

    // TIFFEncodeParam params = new TIFFEncodeParam();
    // params.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);

    TIFFImageEncoder encoder = new TIFFImageEncoder (out, null);
    encoder.encode (src);
    out.flush();
    out.close();
4

1 に答える 1

5

COMPRESSION_GROUP4 を使用して Tiff 画像を書き込めるようにするには、画像をバイレベルの圧縮形式に変換する必要があります。これを行う最も簡単な方法は、おそらく BufferedImage を使用して、互換性のある圧縮スキームで画像をレンダリングすることです。

        FileOutputStream fos = new FileOutputStream("C:/test/output/myFile.tif"); 

        RenderedOp src = JAI.create("fileload", "C:/test/input/myFile.jpg");

        BufferedImage buf = new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_BYTE_BINARY);
        buf.getGraphics().drawImage(src.getAsBufferedImage(), 0, 0, null);
        RenderedImage ri = (RenderedImage) buf;

        encodeParam = new TIFFEncodeParam ();
        encodeParam.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4);

        ImageEncoder enc = ImageCodec.createImageEncoder("TIFF", fos, encodeParam);
        enc.encode(ri);

于 2013-04-24T14:13:38.633 に答える