32bit画像の色がおかしくなる

32bit画像の色がおかしくなる

- myu myo の投稿
返信数: 60


イラストレータなどで出力した
32bitのpng画像を埋め込もうとすると色がくすんだ色になります。
画像の中にアルファチャンネルがあってもなくてもこの現象は起こります。


コードが以下の通りです。

\begin{figure}[htb]
\section{\textcolor{blue}{\Large{yyyy}}}
\begin{boxedminipage}{0.52\hsize}
\includegraphics[width=7.10562414266118cm,bb=0 0 690.666666666667 740.390625]{.//xxx.png}
\end{boxedminipage}

\section{\textcolor{blue}{\Large{yyyy}}}
\begin{boxedminipage}{0.52\hsize}
\includegraphics[width=7.10562414266118cm,bb=0 0 690.666666666667 740.390625]{.//xxx.png}
\end{boxedminipage}
\end{figure}


8bitや24bit画像に変換すると正常な色で表示されます。

また、
\begin{figure}[htb]
\end{figure}
内に32bitと8bitや24bit画像を混在させると
他の8bitや24bit画像の色まで変になります。
また、 \section{\textcolor{blue}{\Large{yyyy}}}
で入れた文字の色も青色ではなく、紺色になります。

これはどうすれば良いでしょうか?



myu myo への返信

Re: 32bit画像の色がおかしくなる

- 匿 名 の投稿
回答ではないですが質問。
-platex と dvipdfmx をお使いですか?
-\documentclass から \end{document} まですべてソースを例示してください
(読んでいるパッケージと処理系がわからないと回答のしようがない)
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿
よろしくお願いいたします。


\documentclass{jarticle}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage[usenames]{color}
\usepackage{boxedminipage}
\usepackage{lastpage}
\usepackage[dvipdfmx]{hyperref}
\usepackage{pxjahyper} %%hyperref読み込みの直後に
\geometry{left=15mm,right=15mm,top=10mm,bottom=18mm}

\makeatletter
\def\ps@plain{\let\@mkboth\@gobbletwo
\def\@oddfoot{\hfill ---\ \footnotesize{\thepage/\pageref{LastPage}}\ --- \hfill}
\def\@evenfoot{}\let\@evenfoot\@oddfoot}
\makeatother

\begin{document}

\pagestyle{plain}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\end{document}
myu myo への返信

Re: 32bit画像の色がおかしくなる

- 匿 名 の投稿
本題からはそれるが,ソースを見て思ったこと。
  • platex + dvipdfmx を使うのなら,graphicx と color にも hyperref 同様に dvipdfmx ドライバオプションを付ける(TeX 以外のソフトが処理するから)。
  • jarticle でなく jsarticle クラスを使うのが標準(jsarticle はJIS 組版規則に適合)。

つまり,一般論として
\documentclass{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage[dvipdfmx,usenames]{color}
あるいは
\documentclass[dvipdfmx]{jsarticle}
\usepackage{graphicx}
\usepackage[usenames]{color}
とすべき。
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿
ありがとうございます。

修正しましたが、やはり色がくすむ問題は解決しません。

 
myu myo への返信

Re: 32bit画像の色がおかしくなる

- aminophen の投稿
私がいつもやっている方法は,事前に PNG や JPG などの画像を何らかのツールで PDF に変換しておく,というものです。
ImageMagick の convert などを試してみてはいかがでしょう?
なんとなく色合いが変わるのが気になったときから使っている方法です。
(dvipdfmx は PDF 画像挿入に対応していますので。)
aminophen への返信

Re: 32bit画像の色がおかしくなる

- 奥村 晴彦 の投稿
私も詳しくありませんが,ICCプロファイルに対応した画像ソフトでPDFに変換しておけば安全ということなんでしょうね。
奥村 晴彦 への返信

Re: 32bit画像の色がおかしくなる

- 奥村 晴彦 の投稿
でも
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?dvipdfmx#e5c0f21c
を見るとdvipdfmxはPNGのiCCプロファイルにも対応しているはずですね。うーん,わからなくなりました。
奥村 晴彦 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿

すいません、関連質問なので、一緒にお聞きしたいのですが

png,bmp,jpgファイルは普通に出力することができるのですが

tifとgifファイルを含むpdfを出力することができません。

dviファイルは出力されるのですが画像が埋め込まれておらず、

pdfファイルはファイルが生成されないという感じです。

コンパイルには祝鳥と秀丸のセットのものを使っています。

tifは極めて汎用的な画像形式なので読み込めないはずがないのですが・・・

この問題と関係していないでしょうか?

何か設定が誤っていませんか?

myu myo への返信

Re: 32bit画像の色がおかしくなる

- 奥村 晴彦 の投稿
> tifは極めて汎用的な画像形式なので読み込めないはずがないのですが・・・

さきほど引用した

http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?dvipdfmx#e5c0f21c

の通りなので,あしからず。
奥村 晴彦 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿

ありがとうございます。

PNGファイルの方ですが

透明度や埋め込み ICC プロファイルなどの情報も保持されます。

と書かれていますね

それだと32bit画像も普通に対応しているはずなのですが・・・

一体なぜでしょうか?

myu myo への返信

Re: 32bit画像の色がおかしくなる

- 奥村 晴彦 の投稿
私もよくわかりませんが,書いてある通りにいかないのが世の常ですので,信頼できるツールでPDF変換してから読み込むほうが安全なんでしょうね。
奥村 晴彦 への返信

Re: 32bit画像の色がおかしくなる

- 奥村 晴彦 の投稿
(…と文字で議論していても始まらないので,サンプルをいただいたほうが早いかも)
奥村 晴彦 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿

http://fast-uploader.com/file/6987251016264/

24bitと32bitのpng画像とtex画像および変換したpdfファイルをアップロードしました。

何か解決策があれば教えてください。

よろしくお願いいたします。

myu myo への返信

Re: 32bit画像の色がおかしくなる

- 奥村 晴彦 の投稿
ありがとうございます。
確かに24ビットなら正常なのに,何かおかしいですね。

いろいろ探していてこういう話も見つけました(ちょっと違う話のようですが):
http://civilyarou.web.fc2.com/WANtaroHP/txt8dvipdfmx/pdf-tex.pdf
奥村 晴彦 への返信

Re: 32bit画像の色がおかしくなる

- aminophen の投稿
私の環境 (W32TeX 2015/04/23, dvipdfmx 20150315) で platex + dvipdfmx を試したところ
-32 bit だけ:薄い
-24 bit だけ:正常
-両方:32 bit のほうだけ薄い
となりました。なお、pdflatex ではこのような問題は発生しませんでした。

先ほど提案した ImageMagick による PDF 変換を事前に行うと解消しました。

convert 32bit.png 32bit.pdf

で生成した 32bit.pdf なら、platex + dvipdfmx で正常に表示できます。
aminophen への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
同じ PNG でも,一度 convert を通すだけで正常になるみたいです.
identify で調べていたのですが,何が原因なのでしょうか.

$ convert 32bit{,_c}.png                     
$ identify -verbose 32bit.png > 32bit.info   
$ identify -verbose 32bit_c.png > 32bit_c.info
$ diff -u 32bit{,_c}.info                   
--- 32bit.info 2015-05-15 23:11:58.061456419 +0900
+++ 32bit_c.info 2015-05-15 23:11:59.709456509 +0900
@@ -1,4 +1,4 @@
-Image: 32bit.png
+Image: 32bit_c.png
  Format: PNG (Portable Network Graphics)
  Mime type: image/png
  Class: DirectClass
@@ -60,7 +60,7 @@
      entropy: 0.297493
  Alpha: srgba(255,255,255,0)  #FFFFFF00
  Rendering intent: Perceptual
-  Gamma: 0.454545
+  Gamma: 0.45455
  Chromaticity:
    red primary: (0.63999,0.33001)
    green primary: (0.3,0.6)
@@ -79,9 +79,11 @@
  Compression: Zip
  Orientation: Undefined
  Properties:
-    date:create: 2015-05-15T22:24:16+09:00
-    date:modify: 2015-05-15T22:07:38+09:00
+    date:create: 2015-05-15T23:11:54+09:00
+    date:modify: 2015-05-15T23:11:54+09:00
+    png:bKGD: chunk was found (see Background color, above)
    png:cHRM: chunk was found (see Chromaticity, above)
+    png:gAMA: gamma=0.45454544 (See Gamma, above)
    png:IHDR.bit-depth-orig: 8
    png:IHDR.bit_depth: 8
    png:IHDR.color-type-orig: 6
@@ -90,14 +92,15 @@
    png:IHDR.width,height: 696, 261
    png:pHYs: x_res=2835, y_res=2835, units=1
    png:sRGB: intent=0 (Perceptual Intent)
+    png:text: 2 tEXt/zTXt/iTXt chunks were found
    signature: 827b4e6441c0bb017a23458752154a3d5ddad5225f652b90f018e853d81c0756
  Artifacts:
-    filename: 32bit.png
+    filename: 32bit_c.png
    verbose: true
  Tainted: False
-  Filesize: 74.1KB
+  Filesize: 75.8KB
  Number pixels: 182K
-  Pixels per second: 0B
+  Pixels per second: 90.828GB
  User time: 0.000u
  Elapsed time: 0:01.000
  Version: ImageMagick 6.9.0-3 Q16 x86_64 2015-01-05 http://www.imagemagick.org
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- 匿 名 の投稿
ガンマ補正が原因でしょうね。
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
ありがとうございます.gAMA を除去すると確かに薄くなりました.

$ convert 32bit{,_c}.png
$ pngcrush -rem gAMA 32bit_c{,c}.png

として,32bit.png, 32bit_c.png, 32bit_cc.png を並べて取り込むと,32bit_c.png だけが正常で,他の2つは薄くなりました.
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- 匿 名 の投稿
何bitかというのは無関係で解決策としてはICCプロファイル
をつけることですかね。

Adobe の製品群が不完全なキャリブレーション情報を書き込
むことが原因だと思います。
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
関連あるかどうかよくわかっていないのですが,元画像から cHRM を除去しても正常になりますね.

$ pngcrush -rem cHRM 32bit{,_rc}.png

として,32bit.png と 32bit_rc.png を並べて取り込むと,後者は正常になります.
色度の不完全な情報を落とすと正常になるとか,そんな感じなのでしょうか.
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- 匿 名 の投稿
色がおかしくなるほうは cHRM はあるが gAMA はないという
状況だと思います。cHRM も gAMA もキャリブレーションに使
われる情報ですが、gAMA が指定されていなかった場合の
デフォルト値をどうするかというところでおかしくなりま
す。Adobe 製品だと 2.2 を仮定していて dvipdfmx
では PDF のデフォルトの 1.0 になってしまう。

sRGB チャンクを使うか ICC プロファイルを埋め込むか
すると再現性が確保されると思います。
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
> cHRM も gAMA もキャリブレーションに使われる情報ですが、gAMA が指定されていなかった場合のデフォルト値をどうするかというところでおかしくなります。

なるほど.大体わかったように思います.詳しい解説ありがとうございました.

ただ,一番最初の質問の

> また、
> \begin{figure}[htb]
> \end{figure}
> 内に32bitと8bitや24bit画像を混在させると
> 他の8bitや24bit画像の色まで変になります。
> また、 \section{\textcolor{blue}{\Large{yyyy}}}
> で入れた文字の色も青色ではなく、紺色になります。
>
> これはどうすれば良いでしょうか?

は再現できなくて,よくわからない私です.
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
昨晩の話は
http://www.libpng.org/pub/png/book/chapter10.html#png.ch10.div.2
のあたりですね.

ちなみに,dvipdfmx ではなくて pdflatex を使う場合には正常なようです.
xelatex は xdvipdfmx を使うのでだめ.

dvipdfmx のソースを取ってきて試してみましたが,添付のようにデフォルト値の 1.0 を
2.2 に修正すると 32bit.png でも正常に取り込めることが確認できました.
pdftex の writepng.c も見てみましたが,こちらは libpng の png_get_gAMA() などに
丸投げで,cHRM があって gAMA がない場合は考慮していないように見えます.

2.2 に修正するのが正しいのかどうかよくわからないので,とりあえず実験結果だけご報告です.
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿

ご回答ありがとうございます。

詳細はまだ理解できていないのですが

とりあえず添付してくださったdvipdfmx_pngimage_gAMA.patchを使えばうまくいくということでしょうか?

このファイルはどのようにして使えば良いか教えていただけないでしょうか?

myu myo への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
パッチはわかる人向けなので,よくわからなければ無視して下さい.

いくつか上に書きましたが,今のところ正常に取り込むには

・Illustrator での出力時に ICC プロファイルを埋め込むか,
  cHRM チャンクを付けないようにする(私はやり方を知らない)
・ImageMagick で一度 convert を通す(gAMA チャンクが追加される)
・pngcrush で cHRM チャンクを削除する

という方法があるようです.
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿

ありがとうございます。

できれば、バッチの使い方の方を教えていただきたいのですが

検索しても分からなかったので教えてください。

convertやpngcrushの方を使えば良いことは分かったのですが

事前に色化けするか色化けしないかはどのようにして判別すれば良いのでしょうか?

VBで複数の画像を読み込んでpdfとして出力するプログラムを作っているのですが

全ての画像に対して上記の処理を行うと時間がかかるので

処理が必要なファイルにだけ処理を行いたいのですが

どうすれば良いでしょうか?

前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- 匿 名 の投稿
正しいかどうかというよりそうするしか仕方がないという状況だと思います。

問題はcHRMのみ書いてgAMAを書き出さないAdobe製品にあると思いますが、仕方がないところもあるのでしょうか。

PNGの仕様書の9.3 Encoder color handling ではcHRMを書くんだったらgAMAも書くべきとなっています。
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿

ご回答ありがとうございます。

うまく表示されない理由は理解できたのですがdvipdfmxへのパッチの当て方を教えていただけないでしょうか?

http://archive.debian.net/ja/source/sarge/dvipdfmx

このページでソースをDLし、そのフォルダーでパッチを実行し、

それからどうすれば良いですか?

C言語か何かでビルドする必要があるのでしょうか?

myu myo への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
パッチを上げたのは,確かに dvipdfmx のその部分が原因のようだということを伝える意図であって,
これを myu myo さんが使うことを推奨しているわけではないです.
独自ビルドを作ってもあまり根本的な解決にはならないと思いますので,
convert か pngcrush を使うことをおすすめいたします.

色化けするかの判定法ですが,問題は cHRM があって gAMA がないときに起こりますので,
identify -verbose の出力に png:cHRM を含む行がありかつ png:gAMA を含む行がないときに
処理をするようにすればよいのではないでしょうか.
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
先にも書かれていた通り,この場合に 1.0 にするか 2.2 にするかは「未定義」というわけですかね.
(ごめんなさい,関連文書をちゃんと読むべきなのですが…….)
ただ,手元の Web ブラウザや画像ビューワ,pdflatex による取り込みでは表示が全部同じなのに,
dvipdfmx だけが色が変わってしまうので,結果だけを見ると dvipdfmx に問題があるように思えてしまいます.

> PNGの仕様書の9.3 Encoder color handling ではcHRMを書くんだったらgAMAも書くべきとなっています。

見ましたが,

> ... then the encoder is strongly encouraged to output the cHRM chunk. If it does so,
> the gAMA chunk should also be written; decoders can do little with cHRM if gAMA is missing.

とありますね.cHRM があっても gAMA がなかったら何もしない,というのでは解決しないのだろうか.


あと,少し疑問なのですが,pngimage.c には

> If sRGB chunk is present, cHRM and gAMA chunk must be ignored.

という記述があって,一方で identify -verbose 32bit.png の結果を見ると

>    png:sRGB: intent=0 (Perceptual Intent)

とあるのですが,intent=0 だと sRGB チャンクは含まれていない,ということになるのですかね.
(自分でも調べます…….)
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
> cHRM があっても gAMA がなかったら何もしない,というのでは解決しないのだろうか.
試しに先のパッチで修正していた部分を

    return NULL;

で置き換えてみたら,これでも正常になるようです.
直前で G < 1.0e-2 だったら return NULL; する処理があるので,
gAMA がなかったら,無理に 1.0 とかにせずに cHRM の処理もあきらめる方が
一貫している気がします.
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿

何度も申し訳ありません、

推奨するかしないかは別として

一応、今後の勉強のためにも

パッチの使い方を教えていただけないでしょうか?

とりあえず、試してみて

使いにくかったらconvertの方法を使おうと思います。

よろしくお願いいたします。

myu myo への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
どうしてもやりたいならば止めはしませんが,convert を使った方が楽だと思いますが…….

とは言ったものの,おそらく Windows をお使いだと思うのですが,Windows の場合は
どうやってビルドするのが正しいのでしょうね(私は Linux ユーザです).
MSYS2 で試しに一度だけビルドしてみたことはありますが,詳しくは知らないです.
VC++ とかだとどうやるんでしょう…….

Linux ならば以下のような感じです.Windows でも MinGW, MSYS2 などの
Unix ライクな環境を準備して必要なツールを入れれば同じような要領でできるはずです.
(ただし,途中で何か予期せぬハマリポイントがある可能性あり.何か起こっても一切保証いたしませんので,自力でなんとかして下さい.)

まず,dvipdfmx の最新ソースは TeX Live のレポジトリにあるので,それを全て取得してきます.
https://www.tug.org/texlive/svn/
にある通り,適当なディレクトリで

$ rsync -a --delete --exclude=.svn tug.org::tldevsrc/Build/source .

とやります.
これで source というディレクトリ中に TeX Live のソースコードが入ります.
とりあえず dvipdfmx だけが欲しいので

$ cd source
$ ./configure --enable-build-in-source-tree --disable-all-pkgs --enable-dvipdfm-x
$ make -j3

とします.これでしばらく待っていると texk/dvipdfm-x/ に dvipdfmx のバイナリができると思います.
ここまで正常に行けば,パッチをあてて make しなおしましょう.

$ cd texk/dvipfmx-x
(ここで,この移動先のディレクトリにパッチを置いて下さい.wget だとログイン情報がなくて取れなかった…….)
$ patch < dvipdfmx_pngimage_gAMA.patch
$ make

これで make を実行したディレクトリ中にパッチ適用済みの dvipdfmx.exe ができると
思うので,現在お使いの dvipdfmx.exe と置き換えます.
念のため,元々ある dvipdfmx.exe はリネームして保存しておいて下さい.
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
dvipdfmx の仕様がどうあるべきなのかは未だ判断つきかねているのですが,
TeX Wiki の dvipdfmx の項目には現時点での解決法を記載しておきました.
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿
ありがとうございます。

できれば、
パッチを行ったdvipdfmxのexeファイルを
アップロードしていただけないでしょうか?

よろしくお願いいたします。
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿
先ほどファイルをアップしてくださった方(kakutoさん)ありがとうございます。

試してみたのですが

私の環境ではkpathsea621.dllではなく
kpathsea600.dllが入っています。
dvipdfmx.dllとkpathsea621.dllの二つのファイルをコピーしてコンパイルしたところ、
前よりは色が薄くなる量は少なくなったのですが
やはりまだ、元の画像と比べて色が変です。

また、出力されたpdfのバージョンは2.2ではなく1.4になっています。

TeX Liveの最新版を入れる必要がありますか?
できれば、TeX全体をアップデートせずに
この部分だけ改善したいのですが、
何か解決策があれば教えてください。
 
myu myo への返信

Re: 32bit画像の色がおかしくなる

- Akira Kakuto の投稿
前に添付したものは return NULL;
としたものですが,G = 2.2;
でもこちらでは同じように見えます。
若干薄く見えますが,それが限度のようです。
convert で変換した場合とも同じように見えます。

TeX Live 2015(pretest) は G = 1.0; で変更不可
です。

将来,開発者の方により,何等かの変更がされるかも
知れません。

バージョン 2.2 の pdf はありません。形式的に
出力 pdf のバージョンを変更するには
-V number
オプションを使います。(number = 3, 4, 5, 6, 7)。

現在は 1.5 (number = 5) がデフォルトですが,
古い myu myo さんの場合は 1.4 がデフォルトになっています。
Akira Kakuto への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿
ありがとうございます。

つまり原色を再現したければ、
元のpng画像ファイルを書き換えるしかないということですね。
 
myu myo への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
角藤先生,お試しいただきありがとうございます.

> TeX Live 2015(pretest) は G = 1.0; で変更不可
> です。

そうですか.return NULL; がリーズナブルなのかな,とも思いましたが…….


myu myo さん,既に何度か書かれている通り,色の変化がどうしても気になるならば
sRGB チャンクを付けるか ICC プロファイルを埋め込め,ということになるのだと思います.

ところで,

> 前よりは色が薄くなる量は少なくなったのですが
> やはりまだ、元の画像と比べて色が変です。

というのは,どの程度薄くなるのでしょうか?
私の環境では,Evince という PDF ビューワで見る限り,パッチを当てれば
32bit.png と 24bit.png の差はわからなくなります.convert でも同様です.
スクリーンショットや出力された PDF を上げていただけるとありがたいです.

(ただ,今週は急な用事が入ってしまって,すぐには返信ができないかもしれません.)
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- Akira Kakuto の投稿
>> TeX Live 2015(pretest) は G = 1.0; で変更不可です。

> そうですか.return NULL; がリーズナブル
> なのかな,とも思いましたが

TeX Live 2015 は critical な バグを除いて frozen
になっているという意味です。
TeX Live 2015 が出た後,TeX Live 2016/dev となった
段階で,開発者の人が何等かの変更をされるかも知れません。
Akira Kakuto への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
> TeX Live 2015 は critical な バグを除いて frozen
> になっているという意味です。

すいません,意図を勘違いしていました.それはそうだと思います.
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- Akira Kakuto の投稿
> 私の環境では,Evince という PDF ビューワで見る限り,
> パッチを当てれば 32bit.png と 24bit.png の差は
> わからなくなります.convert でも同様です.

私の目でも同じです。(Acrobat 11)。
言われてみると,32bit.png がこころもち薄いかな,という
感じです。

(1) パッチ return NULL;
(2) パッチ G = 2.2;
(3) convert の結果
(4) pdflatex の出力

上の四つの区別は,私の目ではできません。

Akira Kakuto への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿

http://fast-uploader.com/file/6987500246558/

私の環境でコンパイルしたものをアップしました。

24bitのみ.pdfのものが正常な色です。

他のpdfでは色がおかしくなっていることがわかります。

また、convertも試してみましたがこれでも色合いはおかしなままです。

私の環境のバージョンが古いせいでしょうか?


Akira Kakuto への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿
いま、気がつきましたが
acrobat proだと色がおかしくなるのですが
PDF-Xchange viewerだと
おかしな色のpdfは正常に表示されることがわかりました

ビューワによって表示される色が異なるようです。


myu myo への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
ありがとうございます.

アップロードしていただいたファイルは,私の環境では全て同じに見えました.

今度は PDF ビューワの問題ですか.色の問題は大変ですね.
(私はこれ以上,この問題を追わないかもしれません.深入りすると収拾がつかなくなりそう…….)
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- aminophen の投稿
私のところでもコンパイルして手元の Mac 標準の Preview.app(OS X 10.7.5)と Acrobat X で表示してみましたが…
上の2つが Preview.app(左:24bitのみ、右:24bitと32bit-convert)
下の2つが Acrobat X(左:24bitのみ、右:24bitと32bit-convert)
です。すべてまとめてスクリーンショットしました。32bit-convert というのは
convert 32bit.png 32bit_c.png
で作った PNG を取り込んだものです。

Acrobat の 24bitと32bit-convert がくすんでいますね…どうやら PDF ビューアのせいもありそうです。
添付 スクリーンショット_2015-05-18_20.12.44.png
aminophen への返信

Re: 32bit画像の色がおかしくなる

- 匿 名 の投稿
24bit となっているものと 32bit となっているものtの違いはアルファチャンネルのあるなしです。アルファチャンネル (soft mask) が入った画像がページに描画されるとページ全体で色味が影響をうけるというのは Acorobat のクセだったと思います。

画像に限らず 32bit.png を取り込んだページに描画されるものは何でも色味が微妙に変わるのではないでしょうか。
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿
仰るとおり
アルファチャンネルを削除すると
acrobatでも正常に表示されるようになりました。

透明でない場所まで
影響を受けるなんてacrobatのバグではないのでしょうか?
 
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- 匿 名 の投稿
http://tex.stackexchange.com/questions/9261/using-opacity-in-tikz-causes-strange-rendering-in-acrobat

https://forums.adobe.com/thread/1021559

ここらへんが解決策になるんじゃないでしょうか。
dvipdfmx でこれをやるには

\special{pdf:put @thispage << /Group <</S /Transparency /I true /CS /DeviceRGB >> >>}


を画像を挿入するページに入るようにする。
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- Akira Kakuto の投稿
Acrobat XI pro on windows (11.0.11) の場合は
(1) 24bit.png だけ
(2) 32bit_c.png だけ
(3) 24bit.png と 32bit_c.png
上の三つで,差は認められないようです。
前に書きましたように,(3) の場合,よーく見ると
わずかに 32bit_c.png が薄いような感じがする
という程度です。

アセト アミノフェン さんによると
Acrobat X の場合,(3) の色が(1) と比べて全く違っています。
Akira Kakuto への返信

Re: 32bit画像の色がおかしくなる

- 匿 名 の投稿
Acrobat X/Windows 8 を使っていますが 32bit.png が入ると色がくすんで見えます。Acrobat Reader DC だと大丈夫なよなので XI あたりから変わったのではないでしょうか。
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- myu myo の投稿
\special{pdf:put @thispage << /Group <> >>}


魔法の呪文のようで内容は
全く理解できていませんが
これでうまくいきました。



ありがとうございます。
myu myo への返信

Re: 32bit画像の色がおかしくなる

- 前田 一貴 の投稿
> 魔法の呪文のようで内容は
> 全く理解できていませんが

匿名さんがリンクして下さった Adobe のフォーラムを見てみた限りだと,
ページ中に透明度の設定されたオブジェクトが存在する場合は,
色の合成をどの色空間で行うかを明示的に指定する必要があって,
指定がない場合はビューアのデフォルトのものが使用される.
多くのビューアでは RGB が使われるが,古い Acrobat では CMYK が
使われるため,色が変わってきてしまう,ということのようです.
だから,1つでもアルファチャンネルを持つ画像があると,そのページの
他の画像も影響を受けるわけです.

\special で埋め込んだ命令は,そのページの色合成に RGB を使うように
指定しているのだと思います.
前田 一貴 への返信

Re: 32bit画像の色がおかしくなる

- 匿 名 の投稿
Acrobat Reader DC だと「環境設定」→「ページ表示」の「ページコンテンツと情報」の所に「デフォルトの透明の変換用カラースペース」という項目があって、これが「作業用RGB」と「作業用CMYK」で選べるようになっています。

ビューアのデフォルトが選べるようになっていますね。

ここが初期状態で「作業用RGB」になっていますが、これを「作業用CMYK」にかえると Acrobat X 同様の表示となります。
匿 名 への返信

Re: 32bit画像の色がおかしくなる

- Akira Kakuto の投稿
> Acrobat Reader DC だと「環境設定」→「ページ表示」の
>「ページコンテンツと情報」の所に
>「デフォルトの透明の変換用カラースペース」という項目が
> あって、これが「作業用RGB」と「作業用CMYK」で
> 選べるようになっています。

Acrobat XI pro も全く同じでした。
ありがとうございます。