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

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

May 06, 2023 am 11:33 AM

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 までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPアレイの重複排除のためのベストプラクティスは何ですか PHPアレイの重複排除のためのベストプラクティスは何ですか Mar 03, 2025 pm 04:41 PM

PHPアレイの重複排除のためのベストプラクティスは何ですか

最新のPHPコーディング基準とベストプラクティスは何ですか? 最新のPHPコーディング基準とベストプラクティスは何ですか? Mar 10, 2025 pm 06:16 PM

最新のPHPコーディング基準とベストプラクティスは何ですか?

PHPアレイの重複排除は、キー名の一意性を利用できますか? PHPアレイの重複排除は、キー名の一意性を利用できますか? Mar 03, 2025 pm 04:51 PM

PHPアレイの重複排除は、キー名の一意性を利用できますか?

PHP拡張機能とPECLを使用するにはどうすればよいですか? PHP拡張機能とPECLを使用するにはどうすればよいですか? Mar 10, 2025 pm 06:12 PM

PHP拡張機能とPECLを使用するにはどうすればよいですか?

PHPにメッセージキュー(rabbitmq、redis)を実装する方法は? PHPにメッセージキュー(rabbitmq、redis)を実装する方法は? Mar 10, 2025 pm 06:15 PM

PHPにメッセージキュー(rabbitmq、redis)を実装する方法は?

PHPアレイの重複排除のための最適化手法は何ですか PHPアレイの重複排除のための最適化手法は何ですか Mar 03, 2025 pm 04:50 PM

PHPアレイの重複排除のための最適化手法は何ですか

PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか? PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか? Mar 03, 2025 pm 04:47 PM

PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか?

リフレクションを使用してPHPコードを分析および操作する方法は? リフレクションを使用してPHPコードを分析および操作する方法は? Mar 10, 2025 pm 06:12 PM

リフレクションを使用してPHPコードを分析および操作する方法は?

See all articles