スリ飯屋MaLankaのフリーエンジニアな日々

このブログでは、フリーランス5期目となる自身の実体験から、フリーランスエンジニアになるためのノウハウ、ブログや沖縄移住、スリランカの最新情報について発信します。

Rubyで画像ファイルの形式(gif, png, jpg)を判定する

※記事内に提携先企業のアフィリエイト広告(リンク、バナー等)、Google広告を含む場合があります


Rubyで画像ファイルの形式(gif, png, jpg)を判定する


こんにちは、現役沖縄フリーランスエンジニアのmah(MaLanka)です。


このブログでは、

僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、

ノウハウなどを書いていきます。


今回は、

画像ファイルの形式をバリデーションする必要があったので、

備忘録として残しておきます。




Rubyで画像ファイルの形式(gif, png, jpg)を判定する




今回の例では、


  • Base64でエンコードされた、画像のバイナリ文字列


が渡ってくることを想定します。


ファイル名の拡張子で判定はしません。


画像が持つバイナリデータから判定します。




【結論】


def image_type!(encoded_str)
  raise if encoded_str.nil?

  decoded_str = Base64.decode64(encoded_str)
  case decoded_str
  when /GIF8[79]a/n
    return 'gif'
  when /\x89PNG/n
    return 'png'
  when /\xFF\xD8/n
    return 'jpg'
  else
    raise
  end
end


〜処理の流れ〜


1.Base64でエンコードされた、画像のバイナリ文字列をデコードする

2.デコードしたバイナリ文字列に対し、正規表現を当てて、gif, png, jpgのいずれかであることを検証

3.マッチした拡張子を文字列で返す

※gif, png, jpg以外の画像形式の場合はエラー




以上、


  • Rubyで画像ファイルの形式(gif, png, jpg)を判定する


でした。




初めての方はこちらのオススメ記事もどうぞ


note.com


www.malanka.tech


www.malanka.tech


www.malanka.tech


www.malanka.tech




フリーランスエンジニアになりたい方はこちら


フォスターフリーランスという、

フリーランス専門エージェントを使うのがおすすめです。



自分もフォスターフリーランスを使って、

フリーランスエンジニアとしてのキャリアをスタートさせました。


フォスターフリーランスを使うと、

自分の代わりに、

プロの営業さんが案件を探してくれます。


最初の内は、

自分で営業なんてとても出来ないので、

非常にありがたかったです。


しかも無料で利用できる。


参考までに、

自分がお世話になっているエージェントを2つご紹介しておきます。


話を聞くだけでもOKなので、

ぜひ利用してみてください。


フォスターフリーランス【案件保有数5000件以上。業界25年の超老舗】

無料でフォスターフリーランスに登録


下記の記事で、

フォスターフリーランスの特徴について解説しています。


www.malanka.tech




Rubyを学習するならこちら


Udemy という動画教材です。


はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう




なんとUdemy は、

60%OFFのセールをやっている時もあります。


こまめにチェックして、

スキルアップを図りましょう★

フリーランスエンジニアのデメリットはこちら


今回のコロナで、

参画していたプロジェクトが終了し、被害を受けました。


そこで、

コロナ被害を受けて感じている、

フリーランスエンジニアのデメリット【6つ】について、

noteを書きました。


下記に当てはまる人に、参考になると思います。

現在、フリーランスエンジニアとして生きている人

今からフリーランスエンジニアになろうとしている人

フリーランスエンジニアだが、コロナの影響で仕事が途絶えた人


https://note.com/malanka666/n/n081d40a196bfnote.com