IllustratorのVer UPによるPNG読込挙動について

はじめに

こんにちは、イメージ・マジックのもあいです。
弊社では印刷用データの自動処理でPhotoshopやIllustratorのスクリプトを使用する事があるのですが、最近でIllustratorのバージョンアップを行ったら正常に動作しなくなったと言うことがありました。
その事象について備忘録として記事を残しておくことにします。

事象

具体的にどうなったのかというと、Illustratorに配置している画像がずれていてかつ大きさが小さくなるという事象でした。 報告を受けて使用しているIllustratorのバージョンを報告者に確認したところ26.1.0/26.2.1は問題が発生しないが、26.5だと発生するとのことでした。こういう事象が発生したときにバージョンを確認するとよくあるのが「最新版」という報告ですが、それが無かっただけでも良かったと思っています。
ただ、それでも不明なバージョンもあったので、Adobe Creative Cloudでバージョンダウングレードテストも行って、結果としては26.2まではOKで26.3/26.4/26.5はNGでした。

原因

Illustrator上で画像が小さくなったとのことでしたので、最初から解像度の問題であることを疑いましたし、それが正解でした。サーバ上で解像度(DPI値)のみを埋め込んでいたのですが、単位までは埋め込んでいなかったのが原因で、それによってIllustratorのバージョンによって解釈が異なっていることがわかりました。 Illustratorは解像度を埋め込んでいない画像については72dpiとして扱います。26.2までは解像度のみを埋め込んでも72dpi扱いで、単位を埋め込んで初めて認識します。26.3からは解像度のみを埋め込むと単位をdpiで認識していました。これが原因して今まで動いていたものが動かなくなりました。

検証

5種類の画像を用意してIllustratorの26.2と26.5に読み込ませたらどうなるかを検証しました。
下記のような5種類の画像を用意しました。
No 解像度 単位 大きさ(px) 備考
1 なし なし 800 x 80 何も埋め込んでいないバーコード画像
2 なし なし 610 x 88 1に余白をつけたバーコード画像
3 200 なし 610 x 88 1に余白をつけて解像度を付与
4 200 PixelPerInch 610 x 88 1に余白をつけて解像度/単位を付与
5 72 PixelPerInch 610 x 88 1に余白をつけて解像度/単位を付与
下記の画像ですが上記の表の画像を上から順にIllustrator 26.2.1に読み込ませました。
No4は200dpiとして認識しているので小さく表示されていますが、それ以外は一緒です。   次にIllustrator26.5で読み込ませた結果です。
No4はバージョンが異なっても同じですが、No3の解像度のみ指定している画像も200dpi扱いになって小さく表示されます。 ※上記2つの画像は同じ拡大率で表示してるものを縦に並べてスクリーンショットをとっています。

結論

画像の解像度を埋め込む場合は、解像度とともに単位も設定する。片方だけだと誤動作するので厳密に値を設定するのがよい。