*GaChk 切揃絵 [#a986b18d]
>編集者:[[Terai Atsuhiro>aterai]]~
作成日:2003-09-25~
更新日:&lastmod;

#contents

**概要 [#a66869e2]
「GaChk 切揃絵」は、画像ファイルが完全にダウンロードできずに''途中で途切れて欠落''していないか、またはファイルの末尾に''見えないゴミ''が付いていないかを''チェック''するためのフリーソフトです。ゴミのほうは一括操作で、自動修正することができます。

例えばJPEG画像ファイルは0xFFD9という値(EOIマーカー)で終了していなければならないのですが、ネットワークからダウンロードされたファイルの場合、EOIマーカー以前でファイルが途切れてしまうことがあります。逆に"0xFFD90000000000…"といった具合に、EOIマーカー以降にゴミがついたりしているものもあるようです((切の良いサイズになるようにゴミが付いてたりします…))。
これらはビュワーで見ても表示されなかったり、見つけにくかったりするので、一見同じ画像なのにファイルサイズが違う、CRCが合わないといったことが起こります。

すこしぐらいならバイナリエディタで修正してもいいのですが、数十、数百のファイルを調べるのは大変です。

「GaChk 切揃絵」は、指定したディレクトリ以下の画像ファイル(JPG、PNGに対応)を一気に調べ、上記のような末尾のゴミは除去し、途中で途切れているファイルについては、その旨を表示することができます。

**ダウンロード [#f9c6e55e]
-VB版
--[[Vector>http://www.vector.co.jp/soft/dl/win95/art/se129438.html]]においています。VB版のソースは保存してあるのですが、開発環境が手元にないので更新するのは難しいかもしれません。

-Java版
|CENTER:80|CENTER:80|LEFT:480|c
|更新日時|バージョン|コメント|h
|2007-04-16|[[0.1.0b>http://ateraimemo.com/data/gachk/gachk-0.1.0b.jar]]|動作環境を1.6以上に変更|
|2007-04-16|[[0.1.0b>https://ateraimemo.com/data/gachk/gachk-0.1.0b.jar]]|動作環境を1.6以上に変更|
|2005-11-10|0.0.56b|DnDで検索フォルダを選択できるように変更|
|2005-08-25|0.0.53b|作業ログの表示を変更|
|2005-08-03|0.0.50b|起動をすこし速く|
|2005-08-03|0.0.49b|検索フォルダが存在しない場合の警告を変更|
|2005-07-27|0.0.46b|最小サイズの制限、ポップアップメニューなどを修正|
|2005-07-15|0.0.1b|ベータ公開|
**スクリーンショット [#b10bfea6]
#ref(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQsFV-5kf2I/AAAAAAAAAtE/A5LaKEDhNP4/s800/gachk-main.png)
#ref(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQsFWFqHl7I/AAAAAAAAAtI/RIg_m8y05iQ/s800/gachk-log.png)

**特徴 [#nad14ebb]
-画像ファイルの末尾が正しいかどうかをチェックします。
-ゴミが付いていればそれを自動的に修正します((表示されないゴミを取るだけであり、修正しても表示される画像は変化しません))。
-修正できないファイル(途切れているもの)は一覧表示します。
-サブディレクトリの下にあるファイルもチェックできます。
-修正元のファイルは".BAK"を付加した名前に変更されてそのまま残ります((すでに同名の".BAK"ファイルがある場合、修正は行われません))。
-JPG、PNGなどに対応しています((VB版ではGIFも自動修正できますが、画像が壊れる確立がかなり高いので、"BAK"ファイルを消す前にバイナリエディタなどで必ず確認してください))。

***不正な画像の例 [#e827a726]
-''不正な末尾の例1: ダウンロードなどに失敗して途中から破損(EOIがない)してしまった画像''

>左がオリジナル、右がダウンロードなどに失敗して画像が途切れてしまったものを表示しています。ブラウザで見ただけでは右の画像が壊れていることに気づくのは困難です((末尾にブロックノイズが見える場合や、警告、エラーを出すものなどがあり、ビュアーの実装に依存します))。

> &ref(http://ateraimemo.com/data/gachk/org.jpg); &ref(http://ateraimemo.com/data/gachk/sample1.jpg);
> &ref(https://ateraimemo.com/data/gachk/org.jpg); &ref(https://ateraimemo.com/data/gachk/sample1.jpg);

-''不正な末尾の例2: ゴミ(表示されないEOI以降の無駄なデータ)が付いている画像''

>これは、ブラウザで見ても、ビュアーで表示しても全く見分けがつかないので、ダウンロードしてバイナリエディタなどで末尾を確認してみてください。"00000…"とゴミがついてます。このような場合、見るだけならなんの問題もないのですが、画像の重複チェックなどをする場合に非常に困ります。

> &ref(http://ateraimemo.com/data/gachk/sample2.jpg);
> &ref(https://ateraimemo.com/data/gachk/sample2.jpg);

**リンク [#dca6999e]
-%%[[ナニを、イマさら。>http://homepage2.nifty.com/h_i/index.htm]]%%
--Splash Screenを描いてもらいました。
-[[2001年5月21日 JPEGのダウンロード・エラー。>http://www.geocities.jp/akitushima87/menu/nikki02.html]]
--Googleで見つけて勝手にリンクです。ここより分かりやすく紹介されてます。
-[[デジタル出力工房 絵写楽>http://www.bekkoame.ne.jp/~bootan/free2.html]]
--ここから著作権フリーの写真を利用させてもらっています。

**コメント(バグ報告、質問など) [#j1368332]
- はじめまして。GaChk(VB版)をいつも利用させていただいております。便利なソフトを公開していただけて感謝しております。…ところで、ソフトの動作に関する質問等は、このページへのコメントという形でよろしいのでしょうか? コマンドラインオプション指定で気になる動作があったので報告させていただきます。ヘルプには、-d "初期フォルダ名" をオプションで渡すことで初期フォルダを指定した起動ができると書いてあるのですが、どうも思ったような動作にならず、履歴のフォルダが初期フォルダになってる状態で起動してしまいます。当方が、何か指定の仕方を間違えているのでしょうか? -- &user(bw); &new{2005-07-31 (日) 00:34:42};
- もう一点。Java版の実行は、java -jar gachk-0.0.46b.jar でよろしいのでしょうか? -- &user(bw); &new{2005-07-31 (日) 00:43:04};
- VB版で初期フォルダの指定が無効になっている件はバグです。修正したいのですが環境が…。 -- &user(aterai); &new{2005-07-31 (日) 15:07:30};
- Java版の実行はそれで問題ないと思います。Windows環境ならjarファイルをダブルクリックしても起動するはずです。Java版のちゃんとしたドキュメントはβが取れたときに公開する予定です((%%8月か9月に夏休みが取れれば、まとめてやってしまう予定です%%))。 -- &user(aterai); &new{2005-07-31 (日) 15:11:36};

#comment