【PHP】画像をbase64エンコードをしてJSONで扱う

【PHP】画像をbase64エンコードをしてJSONで扱う

PHP

公開: 2017-10-01

更新: 2020-04-29

こんにちは、いつもお読みいただきありがとうございます。
Ken(@gootablog)です

画像解析をする際に使用したAPIで、画像データをJSONに含めて渡さないといけなかった。
その際にBase64という形式にして渡す必要があったのでそのやり方を書いていきます。

Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。
Base64 – Wikipedia

PHPで画像をbase64エンコード

file_get_content()でfileを文字列として読み込んで
その文字列を
base64_encode()`の引数に渡して実行する

<?php

$encoded_data = base64_encode(file_get_contents('test.jpg'));

これでエンコードされたデータになるので、jsonで扱うことができる

base64でエンコードされたデータをデコードする

エンコードされたデータを元に戻して使いたい時は、base64_decode()を使えばOK。

<?php

$image = base64_decode($encoded_data);