Rubyで画像ファイルの種別を判定する方法です。 🐹 判定ロジック JPEG => ファイルがffd8で始まり、ffd9で終わる GIF => ファイルがGIFで始まり、3bで終わる PNG => ファイルが89504e470d0a1a0aで始まり、0000000049454e44ae426082で終わる 😸 ソースコードdef image_type(file_path) File.open(file_path, 'rb') do |f| begin header = f.read(8) f.seek(-12, IO::SEEK_END) footer = f.read(12) rescue return nil end if header[0, 2].unpack('H*') == %w(ffd8) && footer[-2, 2].unpack('H*') == %w(ffd9)