Free Support Forum - aspose.com

Aspose-words-18.1-java DOCXからTIFFへ変換すると白黒が反転する

DOCXからTIFFへ圧縮モードをCCiTTG3にてTIFF変換を行うと白黒が反転してしまう。
Windowsの画像編集ソフトなどで確認すると正常に表示されるのですが
TIFF専用のViewerなどで表示すると反転して表示されてしまいます。
独自に調べたところ、CCITTG3などで圧縮し、PhotometaricInterpretation=1の場合に
白黒が逆転して表示されてしまうらしいのですが対応方法はありますでしょうか。

環境
OS:Windows10
Java:JDK8
Aspose:aspose-words-18.1-java

テストコード

	Document doc = new Document("FRM01000-0.docx");

	//保存形式指定:TIFF
	ImageSaveOptions options = new ImageSaveOptions(SaveFormat.TIFF);
	//圧縮方式指定:CCITT G3
	options.setTiffCompression(TiffCompression.CCITT_3);
	//解像度(水平)指定:200dpi
	options.setHorizontalResolution(200);
	//解像度(垂直)指定:200dpi
	options.setVerticalResolution(200);
	//画像カラーモード:黒白
	options.setImageColorMode(ImageColorMode.BLACK_AND_WHITE);

doc.save("FRM01000-10 Out(200dpi_CCITT3).tiff", options);

以上、よろしくお願いいたします。

@moko,

あなたの入力Word文書と出力TIFFファイルをZIP形式でアップロードし、テストのために望ましくない動作を示してください。 私たちは最後に問題を調査し、より多くの情報を提供します。

FRM01000-00.docxを非圧縮とCCITT3にて圧縮したものをアップロードいたします。
Tiff Viewerにて確認を行うと非圧縮とCCITT3で白黒が反転しているのがわかると思いますが、CCITT3で圧縮時にも非圧縮と同じように表示されるようにしたい。

変換前のDOCX:FRM01000-00.docx

非圧縮:FRM01000-10 Out(200dpi_TiffCompression.NONE).tiff
CCITT3:FRM01000-10 Out(200dpi_TiffCompression.CCITT_3).tiff

FRM01000-00.zip (261.0 KB)

@moko,

この問題が発生しているTIFF Viewer(ソフトウェア名)についても教えてください。

基本的には、TIFF形式を表示するものなら現象は起こるはずです。
こちらにて使用しているのは、
FUJI xerox TIFF Viewer Ver1.0.8
となります。

Windows付随のものだと再現しないかもしれませんので注意してください。

@moko,

私たちはシナリオをテストし、同じ問題を私たちの目的のために再現することができました。 訂正のために、私たちはこの問題を当社の問題追跡システムに記録しました。 この問題のIDはWORDSJAVA-1740です。 当社の製品チームは、この問題の詳細をさらに調査し、是正措置の状況について最新の情報を提供します。 ご迷惑をおかけして申し訳ありません。

チケット作成ありがとうございます。
調査の程、よろしくお願いいたします。

当方にて、動作確認などの検証を行っているためリリース時期が知りたいのですが
このチケットの対応は、いつ頃に完了してリリースされのでしょうか?

@moko,

ご質問ありがとうございます。 残念ながら、あなたの問題はまだ解決されていません。 現在、この問題は分析のため保留中であり、キューに入っています。 この問題が解決され次第、このスレッドを通じて通知させていただきます。

@moko,

WORDSJAVA-1740に関して、私たちはあなたの問題に関する作業を完了し、この問題は実際にはAspose.Wordsのバグではないという結論に達しました。だから、私たちはこの問題を「バグではない」と締めくくるでしょう。

あなたの(TiffViewer)ツールの使用をやめてください。それは時代遅れです。このツールはTIFF形式のほとんどの機能を理解していません。

たとえば、外部アプリケーション(Paint.NET)を取り出し、簡単なイメージを作成してTIFFとして保存しました。 WindowsおよびオンラインのWeb閲覧者はそれを理解していますが、このツールはありません(添付の画像を参照)。あなたのイメージもチェックしました。 Paint.NETや多くのオンラインツールでも完全に開くことができます。

添付された画像には「PhotometricInterpretation [262] = 1」というマークがあります。これは、0ビットが黒に等しく、塗りつぶされたビット(1)が白に等しいことを意味する。ドキュメントをご覧ください:https://www.awaresystems.be/imaging/tiff/tifftags/photometricinterpretation.html

画像内のビットをチェックすると、画像にはまったく同じビット(1 =白、0 =黒)を持つカラーパレットがあることがわかります。視覚的に最初の画像のラインは白で、ビットは1111111です(pic01.png参照)。これによると、PhotometricInterpretationは1に等しくなければなりません。

さらに、このフラグはJAI内部で自動的に設定されます。このライブラリでは、白黒反転された既知の問題は見つかりませんでした。

Images.zip (60.0 KB)

その仕様は理解しており、そこに補足で下記のような仕様があります。

①TIFF_G3_FAX/TIFF_G4_FAX、かつ、PhotometricInterpretation =0:
CCITTが定義した白黒色表示の基準に従って、画像を表示する

②TIFF_G3_FAX/TIFF_G4_FAX、かつ、PhotometricInterpretation =1:
CCITTが定義した白黒色表示の基準を逆して、画像を表示する
すなわち、CCITTが定義した白黒色表示の基準は、白=0であれば、
この場合、画像が黒=0で表示する
これは、画像のWindows表示とSnowboundやIrfanViewで表示した結果が
逆になった原因。

こちらにて下記のアプリでさらに確認したところ再現しました。
http://www.tiff-tools.com/freetiffviewer.aspx

さらに、AsposeにてCCITT4にて圧縮を行うと上記①でTIFFファイルが作成され
正常に表示されることを確認しております。
現状、CCITT3の圧縮は②の状態となっており、白黒が反転する現象が発生しております。

参考URL


一部抜粋
該当問題に当たっている英語の説明:
An encoded CCITT string is self-photometric,
defined in terms of white and black runs. Yet TIFF defines a tag
called PhotometricInterpretation that also purports to define
what is white and what is black. Somewhat arbitrarily, we adopt
the following convention:

The “normal” PhotometricInterpretation for bilevel CCITT
compressed data is WhiteIsZero. In this case, the CCITT “white”
runs are to be interpreted as white, and the CCITT “black” runs
are to be interpreted as black.
However, if the PhotometricInterpretation is BlackIsZero, the
TIFF reader must reverse the meaning of white and black when
displaying and printing the image.

以上、再度の検証をお願いいたします。

追記:
参考URL
ttp://www.verypdf.com/document/tiff6/pg_0050.htm
ttps://github.com/haraldk/TwelveMonkeys/issues/315

@moko,

あなたが共有した詳細に基づいて、私たちは私たちの問題をさらに調査します。 私どもは今後の更なる更新についてお知らせいたします。

The issues you have found earlier (filed as WORDSJAVA-1740) have been fixed in this Aspose.Words for .NET 18.4 update and this Aspose.Words for Java 18.4 update.