IrfanViewのスライドショーが1・10・11・2の順になる原因と直し方|ファイル名を数値順に並べる方法

Windows 全般

IrfanViewなどの画像ソフトで、ファイル名を「1.jpg、2.jpg、3.jpg……10.jpg、11.jpg」のように付けているのに、スライドショーへ追加すると「1、10、11……2、20、21……」という順番になることがあります。Windowsのフォルダでは正しく並んでいるため、ソフトの不具合に見えるかもしれませんが、多くの場合はファイル名を数字として比較するか、文字列として比較するかという並べ替え方法の違いが原因です。

この問題は仕組みさえ分かれば難しくありません。特に大量の画像をスライドショーに使用する場合は、1枚ずつ順番を入れ替えるより、ファイル名の付け方を変更したほうが確実で、ほかのソフトへ画像を移した場合にも順序が崩れにくくなります。

なぜ「1、10、11、2、20」の順番になるのか

ポイントは、ソフトによってファイル名の並べ替え方法が異なることです。人間が「1、2、3、10、11」と見る場合は、それぞれを数値として認識しています。一方、ソフトがファイル名を単なる文字列として比較すると、結果が変わります。

文字列として並べる場合は、先頭の文字から順番に比較されます。そのため「1」の次には、同じ「1」から始まる「10」「11」「12」などが並び、その後に「2」が来ます。「2」の後には「20」「21」などが続きます。

比較方法 並び方の例
数値として並べる 1、2、3、4、5、10、11、12
文字列として並べる 1、10、11、12、2、3、4、5

Windowsのエクスプローラー側では数字を人間にとって自然な順番に扱う並べ替えが行われることがあります。そのため、フォルダでは正常なのに別のソフトへ読み込むと順番が変わるという現象が起こり得ます。

最も確実な対策はファイル名の数字をゼロ埋めすること

スライドショー用画像を確実に順番どおり並べたい場合、扱いやすい方法がゼロ埋め(ゼロパディング)です。桁数がそろうように数字の前へ0を付けます。

例えば画像が99枚までなら、「1.jpg」ではなく「01.jpg」、「2.jpg」ではなく「02.jpg」とします。すると「01.jpg、02.jpg、03.jpg……09.jpg、10.jpg、11.jpg」となり、文字列として並べても意図した順番になります。

100枚以上ある場合は3桁に統一し、「001.jpg、002.jpg、003.jpg……010.jpg、011.jpg……100.jpg」とします。画像が1000枚以上になる可能性があるなら「0001.jpg」のように4桁へ統一しておく方法もあります。

なぜゼロ埋めすると正しい順番になるのか

例えば「2.jpg」と「10.jpg」を文字列として比較すると、最初の文字は「2」と「1」です。そのため「10.jpg」のほうが先に来ることがあります。しかし「02.jpg」と「10.jpg」なら先頭から比較しても「0」と「1」なので、02のほうが先になります。

同様に「01、02、03……09、10、11」と桁数をそろえておけば、文字列として並べた結果と数値として並べた結果が一致しやすくなります。

この方法のメリットはIrfanViewだけに依存しないことです。別の画像ビューア、動画編集ソフト、スライドショー作成ソフトなどへ素材を移した場合にも、ファイル名による順番を維持しやすくなります。

画像が大量にある場合は一括リネームする

すでに「1.jpg、2.jpg、3.jpg……」というファイルが大量にある場合、1個ずつ「001.jpg、002.jpg……」へ変更するのは大変です。その場合は一括リネーム機能を利用すると効率的です。

IrfanViewにはファイルの一括変換・リネームに利用できる機能があります。連番を付け直す場合は、元画像を失わないようバックアップを作成したうえで、ファイル名を「001、002、003……」のような一定桁数の連番へ変更すると管理しやすくなります。

Windows環境では、そのほかにもPowerShellや各種リネームツールを使って連番を整える方法があります。ただし、操作を間違えると大量のファイル名が一度に変更されるため、最初はコピーしたフォルダで試してから本番データを変更するのが安全です。

IrfanView側で順番を変更する場合の考え方

IrfanViewでスライドショーを作成するときは、読み込まれたファイル一覧の順番が実際の再生順に影響します。そのため、まず一覧へ追加した時点で意図した順番になっているかを確認することが重要です。

少数の画像であれば、一覧上でファイルを移動して順番を調整する方法でも対応できます。しかし、数十枚・数百枚になると手動調整はミスが起きやすく、画像を追加し直した際に再び並び順の問題が発生する可能性もあります。

継続的にスライドショーを作るのであれば、ソフト内で毎回並べ替えるよりも、元ファイルを「001.jpg、002.jpg……」という規則的な名前にしておくほうが管理しやすいでしょう。

ファイル名を付けるときに覚えておきたいルール

画像や書類などを連番で管理するときは、最初から最大枚数を想定して桁数を決めておくと後で困りません。1~9なら1桁でも問題ありませんが、10以上になると文字列順との差が現れます。

  • 最大9個なら「1~9」でも問題が起きにくい
  • 最大99個なら「01~99」にする
  • 最大999個なら「001~999」にする
  • 最大9999個なら「0001~9999」にする

例えば写真が現在80枚しかなくても、後から画像を追加して100枚を超える可能性があるなら、最初から「001.jpg」形式にしておくと安心です。

また、「旅行1.jpg」「旅行2.jpg」のような名前を使う場合でも、「旅行001.jpg」「旅行002.jpg」のように連番部分の桁数を統一すると整理しやすくなります。

フォルダでは正しいのにソフトでは違う場合は故障とは限らない

エクスプローラーとIrfanViewなどで表示順が異なると、ファイルが壊れている、あるいはソフトがおかしいと思ってしまいがちです。しかし、ファイルそのものには問題がなく、単純に並べ替えの規則が異なっているだけというケースがあります。

この考え方は画像だけでなく、「page1、page2、page10」といったPDFや、「data1、data2、data10」といったデータファイルなどにも当てはまります。複数のアプリケーションで利用するファイルほど、ゼロ埋めした連番が便利です。

特定のソフトの表示順だけを直すのではなく、ファイル名そのものを機械が扱いやすい形式へ統一しておけば、将来的に別のソフトへ移行するときにもトラブルを減らせます。

まとめ

IrfanViewなどへ「1、2、3……」という名前のファイルを読み込んだ際、「1、10、11……2、20、21……」となる場合は、ファイル名が数値ではなく文字列として並べ替えられている可能性があります。

最も分かりやすく汎用的な対策は、「001、002、003……010、011」のように数字の桁数をそろえることです。これなら文字列順でも数値順と同じ並びになりやすく、IrfanView以外のソフトでも扱いやすくなります。

大量の画像がすでにある場合は一括リネームを利用し、事前にバックアップを取ってから連番を整えると安全です。スライドショーや画像素材を長期的に管理するなら、最初からゼロ埋めしたファイル名を採用しておくと並び順のトラブルを防ぎやすくなります。

コメント

タイトルとURLをコピーしました