ホームページ  >  記事  >  バックエンド開発  >  PHP画像をバイト配列に変換

PHP画像をバイト配列に変換

PHPz
PHPzオリジナル
2023-05-06 11:33:07924ブラウズ

PHP を使用して開発する場合、多くの場合、ネットワーク送信やデータベースへの保存を容易にするために、画像ファイルをバイト配列に変換する必要があります。この記事では、PHPを使用して画像をバイト配列に変換する方法を紹介します。

1. file_get_contents() 関数を使用して画像ファイルを読み取る

PHP では、file_get_contents() 関数を使用して、指定されたパスにあるファイルの内容 (バイナリ ファイル タイプなど) を簡単に読み取ることができます。写真、オーディオ、ビデオなどとしてサンプル コードは次のとおりです。

$file = 'path/to/image.jpg';  // 图片文件路径
$data = file_get_contents($file);  // 读取图片内容

ここで、$file は指定された画像ファイルのパス、$data は読み取られた画像のバイナリ コンテンツです。このメソッドを使用してファイルを読み取ると、$image 変数をブラウザに直接出力でき、以下に示すように、ブラウザが自動的に画像の種類を識別して表示できるようになります。

header('Content-Type:image/jpeg');  // 告诉浏览器返回的是JPEG格式的图片
echo $data;  // 输出图片数据

2. 画像データを単語に変換します。セクション配列

前のステップの後、画像のバイナリ コンテンツを正常に読み取ることができました。次に、簡単に使用および送信できるように、それをバイト配列に変換する必要があります。ここでは、pack() 関数を使用して画像データをバイナリ文字列に Pack() し、次に str_split() 関数を使用してバイナリ文字列をバイトに分割してバイト配列を取得できます。サンプル コードは次のとおりです。

$bytes = str_split(pack('H*', bin2hex($data)));

ここでは、bin2hex() 関数がバイナリ文字列を 16 進デジタル形式に変換し、次に Pack() 関数がデータをバイナリ文字列形式にパックし、最後に str_split( ) 関数はバイナリ文字列を 16 進数に変換し、文字列を各バイトに分割してバイト配列を取得します。

3. Base64 エンコーディングを使用してバイト配列をテキストに変換します

バイト配列を使用すると、画像データをデータベースに保存したり、ネットワーク経由で送信したりできますが、通常は変換する必要もあります。 HTML ページでの画像の表示など、特定のシナリオでの使用と表示を容易にするためにテキスト形式に変換されます。ここでは、base64 エンコードを使用してバイト配列をテキスト形式に変換できます。サンプル コードは次のとおりです。

$base64 = base64_encode($data);

ここで、$data は前に読み取った画像のバイナリ コンテンツであり、base64_encode() 関数を使用してバイナリ データを Base64 エンコードされたテキストに変換します。

4. 概要

この記事では、PHP を使用して画像ファイルをバイト配列に変換する方法を紹介します。一般的な手順は次のとおりです: まず、file_get_contents() 関数を使用して画像バイナリ データを読み取り、 Pack() 関数はデータをバイナリ文字列形式にパックし、最後に str_split() 関数を使用してバイナリ文字列を各バイトに分割し、バイト配列を取得します。バイト配列をテキスト形式に変換する必要がある場合は、base64 エンコードを使用できます。これらの操作は、ネットワーク送信やデータベース ストレージで広く使用されています。

以上がPHP画像をバイト配列に変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。