1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

拡張子を偽るPNGファイルを見破るfileコマンド

Last updated at Posted at 2019-03-05

世の中には拡張子を変更すれば中身も変わると思っている人がいるらしく、
.pngなのに中身はjpegファイルだったり、.jpgなのに中身はpngファイルだったりってファイルによく遭遇する。
画像まわりで処理が何故かエラーになったり、挙動がおかしくなったりするのは6割方これのせい。

偽の image.png ファイルを調べる

image.jpg というjpegファイルから、ファイル名変更で拡張子だけを変更した image.pngfile コマンドで実行するだけ

$ file /tmp/image.png
/tmp/image.png: JPEG image data, JFIF standard 1.02, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 500x500, frames 3

JPEG image data と表示される

本物のPNGファイルだとこんな表示

$ file /tmp/image.png
/tmp/image.png: PNG image data, 500 x 500, 8-bit/color RGBA, non-interlaced

ピクセル数、何bitなど他の情報も取得できる

fileコマンドは画像ファイル以外にも使える

$ file /tmp/image.psd
/tmp/image.psd: Adobe Photoshop Image, 500 x 500, RGB, 3x 8-bit channels
$ file /tmp/image.zip
image.zip: Zip archive data, at least v2.0 to extract

軽い情報はここから読み取れるので、CUIで操作してるとき多少便利かも

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?