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

IT実務未経験から約1年、東京でフリーランスのRuby on Railsエンジニアに転職。約2年半、大阪中崎町でスリランカカレーの間借りしてました。フリーランスエンジニアになるためのノウハウ、スリランカの事を発信していきます。

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

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


転職を絶対成功させたい、駆け出しエンジニアの方へ


このブログからよく購入されている、

駆け出しエンジニアのマインドセットができるnote2点です↓↓↓


note.com


note.com





こんにちは、mah(@RailsRubyMah6h)です。


このブログでは、

僕が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




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


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

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


f:id:mah666hhh:20200615083445p:plain


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

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


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

自分の代わりに、

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


最初の内は、

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

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


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


参考までに、

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


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

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


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

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


下記の記事で、

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


www.malanka.tech




Rubyを学習するならこちら


Udemy という動画教材です。


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




なんとUdemy は、

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


こまめにチェックして、

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




また、

Ruby関連の過去記事は下記にありますので、

合わせてチェックしてみてください◎


Ruby カテゴリーの記事一覧 - スリ飯屋Malankaのフリーエンジニアな日々

www.malanka.tech




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


今回のコロナで、

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


そこで、

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

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

noteを書きました。


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

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

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

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


note.com





最後までお読み頂きありがとうございました★

もしよかったらTwiiterのフォローもお願いします★