2017年5月2日火曜日

GIMP xcf は ひとつ だけじゃない

GIMP 使い の皆さん!、 ご存知でしたか?。
xcf ファイルの形式は  ひとつ だけじゃない って。
前々から、知ってはいましたが、 使っては来ませんでした。
フォルダが一杯になって来たので、 そろそろ、 トライして見るか 的な投稿になります。


GIMP 独自ファイルの .xcf 形式 は いつも お世話になっています。
レイヤーをそのまま保存出来るのは誠に ありがたい ですね。

でも、 そのありがたさ を、 保存先の容量を顧みずに使って来たのが 私の 実情 です。
つまり、 そのまま Default (標準) の XCF として 保管 していたのですね。


公式 Help 用語集 より引用  https://docs.gimp.org/ja/glossary.html   (En:) https://docs.gimp.org/en/glossary.html
     赤い字 は ShiroYuki_Mot が編集。.
XCF

    XCF は GIMP 由来の ファイル形式 なので、 GIMP 画像を構成するすべてのデータが保存されるよう特別に用意されました。 このため XCF ファイルはすっかりこんがらがってしまうようで、 GIMP 以外にこれを読みこなせるプログラムは僅かしかありません。

    画像を XCF で保存するとその画像で判ることがほとんど何もかもデータ化されてファイルに収められます。 その対象は各レイヤーや現在の選択範囲の画素の情報、 もしあれば追加されたチャンネルやパスやガイドです。 ただし重要なことですが XCF ファイルに作業履歴だけは保存されません。

    XCF ファイルの画素の情報は劣化のない圧縮をかけられた状態になります。 画像の断片ブロックは連長圧縮アルゴリズムで圧縮されます。 これはつまりこの形式で画像の保存と読み込みを何度繰り返しても画像のデータは 1 画素でさえも失われることがないのです。 XCF は非常に大きなものになりやすいファイル形式です。 GIMP ではフリーで使える高速で効果的な gzip や bzip2 圧縮方法のいずれかをかけられた XCF ファイルも扱えますので、 圧縮しない場合に比べて 10 分の 1 以下に縮められます。

    GIMP の開発者は XCF ファイル形式がこれまでの GIMP のさまざまな版と互換性を保てるよう、 膨大な努力を重ねてきました。 仮に GIMP 2 以上で作成した XCF ファイルなら、 GIMP 1.2 でも開けます。 ただしファイル内の情報のいくつかは利用できません。 たとえば GIMP 2.0 からテキストの扱いが GIMP 1.2 よりはるかに高度になりましたので、 仮に GIMP 2 以降でテキストを含む画像を XCF で保存すれば、 このファイルは GIMP 1.2 で開くとテキストレイヤーの代わりに普通の画像レイヤーが現れます。

さて、 Wikipedia で調べて見ると、 大体、こんな感じでしょうか?。

  .xcf   RLE (Run Length Encoding) 連長圧縮 利用
  .gz   gzip (GNU zip)         RFC 1952                        Windows の zip とは無関係
  .bz2   bzip2                     gzip より高圧縮率・処理は重い


さて、実験です。
GIF Animation 用の経過ファイル 1200 x 800 px RGB レイヤー数 59 を 各形式 で保存して見ました。



この 6個のファイル、 ファイル名や日時が違うだけで、 画像としては 全く 同一のもの です。.
最初の Test_Compress_ElephantFlyGIF.xcf がオリジナルです。  161 MB 。
次は、
名前を付けて保存(A)... で間違って、 すべての XCF ファイル を展開し種類を選んだだけでやってしまったので、
普通の .xcf になった失敗。
3,4番目が gz (gzip) 形式。
5,6番目が bz2 (bzip2) 形式。

ファイル形式の選択(T) で bzip アーカイブ か gzip アーカイブ かを選ぶと、 .xcf.bz2 か .xcf.gz かのファイルを生成します。
標準では .xcf 以外は ファイルの関連付け がされていないので、
改めて、 GIMP と結び付けた 結果 で表示しています。
各拡張子の xcf と linux 譲りの圧縮拡張子の間に 「 . 」(半角ドット) を挟むか否かは 好みで分かれる処でしょうね。
特に、 Windows では .gz や .bz2 は馴染みの薄い 拡張子 なので、 要検討! です。

  そして、 ファイルの関連付け を行う事を考えれば、 .xcf.gz は 拡張子 .gz になりますので、
  他の .gz 圧縮のものが紛れれば、それと区別出来ませんし、 全て GIMP と結び付けてしまうと 不都合 かも。.


はい。  引用文にある 10分の1 と言う 表現 は 元々の画像データ容量に対してなのでしょう。
標準形式 の .xcf も 圧縮が掛かっている点を考慮すれば、
圧縮比率が高まる と 読み替え た方が 正解 そうです。


この例では、  161 > 117 > 102 MB と 圧縮アルゴリズムの差がハッキリ出ています。
別の例では、 半減したりしています。  その方が一般的なのかも。.
絵 によって 効果の差に バラツキがある と言う事ですね。
まだまだ、 試している段階なので、どの位の保存スペースが確保出来るのかの傾向は掴んでいません。.


では、 高圧縮の bz2 (bzip2) 形式 が良いのか? となると、
一概には決められません。
                     そうであれば、 GIMP の標準形式 .xcf が置き換えられている筈ですものね。

ファイルを開くのに、時間が掛かる様になるからです。
展開するのに 複雑な アルゴリズムが 時間を喰っている 証拠ですね。


さて、 では、
どの形式を選ぶか?。

私なら。
通常利用は、 標準の .xcf 形式 で 良い と思います。
そして、レイヤー数が増え、ファイルが肥大しても、作業の途中であれば、 標準の .xcf 形式を選びます。
多分 使わないであろうが 万一の事を考えて保存 ... なら、 最高圧縮の . bz2 (bzip2) 形式 でしょうか。
ファイルを開く時の時間差が どうしても気になる 様でしたら、 gz (gzip) 形式 でしょうか。
いやぁ、 どちらが ベスト なのか、 悩む 処 ですね。


そして、 もう ひとつの 検討項目 は、
ファイル(画像)の内容に 一切 手を付けていないのにも係わらず、 更新日時や作成日時が変わる 事でしょう。
画像作成編集時に、これらの圧縮方法を選んでいれば まだしも、
後日、 記憶装置の容量確保を目的とした ファイルの形式のみの操作の場合には、
この日時が更新されるのは 不都合 です。
別の手段を用いて、 日時をオリジナルに合わせる 方策 を考えねば ... 。



尚、 ファイルの圧縮保存に目を向ければ、
Windows でも、標準で zip 書庫を作る事が可能で、一般的な文書なら、かなりの圧縮率が期待出来ます。
しかし、 展開しないと GIMP からは その個々の内容 が見れないのですよね。
言い換えれば、 ファイル選択で表示されるサムネイルは圧縮書庫に入ってしまっては表示されない と言う事です。
また、 上で述べた 各ファイル毎に圧縮し ファイル拡張子が変わった状態では、
更に、 圧縮書庫に格納しても 圧縮率の向上は無く、 逆に、辞書の分だけ増える と言った事象も見られます。
ですから、 上の様な手段を取り、 通常のフォルダに収めるのがベストなのだと思います。



0 件のコメント:

コメントを投稿