PHP画像処理関数では、 ImageCreateとImageWBMPは2つの一般的な関数であり、それぞれ画像リソースと出力画像をWBMP形式に作成するために使用されます。 WBMP(ワイヤレスビットマップ)形式は、ワイヤレスデバイスの白黒画像形式です。使用法のシナリオは徐々に減少していますが、古いデバイスと互換性のある軽量システムまたはシナリオでは依然として役立ちます。この記事では、これらの2つの機能を効率的に使用して、ニーズに合った画像を生成する方法を詳細に紹介します。
ImageCreate関数は、指定された幅と高さで画像キャンバスを作成するために使用されます。基本的な構文は次のとおりです。
$img = imagecreate(int $width, int $height);
後続の操作のために画像リソースハンドルを返します。注:この関数は、黒と白の画像などの単純な画像構造を生成するのに適したパレット画像(真の色の画像ではありません)を作成します。
ImageWBMP関数は、画像リソースをWBMP形式に出力します。その構文は次のとおりです。
imagewbmp(GdImage $image, ?string $file = null, int $foreground = 0);
$画像: ImageCreateによって作成された画像リソース。
$ファイル:オプション、出力パスを指定します。NULLの場合、ブラウザに直接出力されます。
$フォアグラウンド:フォアグラウンドインデックス(オプション)を指定します。
ImageCreateとImageWBMPを使用して画像を効率的に生成する完全な例を次に示します。
<?php
// ヘッダー情報をに設定します WBMP タイプ
header("Content-Type: image/vnd.wap.wbmp");
// ワイドを作成します100高い50画像
$width = 100;
$height = 50;
$img = imagecreate($width, $height);
// 色を割り当てます:最初の色は通常、背景色です
$white = imagecolorallocate($img, 255, 255, 255); // 背景色
$black = imagecolorallocate($img, 0, 0, 0); // 前景の色
// 対角線を描きます
imageline($img, 0, 0, $width - 1, $height - 1, $black);
// 出力画像
imagewbmp($img);
// リソースを破壊します
imagedestroy($img);
?>
このコードは、斜め線に黒い線が付いた白い背景画像を直接出力し、形式はWBMPです。これは、検証コード図、QRコードの基本画像などの軽量画像処理タスクに非常に適しています。
WBMP画像をブラウザに直接出力する代わりにファイルに保存する場合は、ターゲットパスパラメーターを渡すだけです。
imagewbmp($img, '/var/www/gitbox.net/images/sample.wbmp');
サーバーには書き込みアクセス許可が必要であることに注意してください。そうしないと、ファイル書き込みの失敗が発生します。
色の割り当てを減らす:WBMPは白黒形式であるため、不必要なメモリの使用を避けるために2色のみを使用してください。
できるだけ早くリソースをリリースします。メモリの漏れを避けるために、画像リソースをImagedestroy()から時間内にリリースします。
画像サイズの合理的な制御:WBMPは、主に大規模なキャンバスを必要とせずに軽量の画像シーンで使用されます。
キャッシュ処理:生成されたWBMP画像をキャッシュして、生成の重複を回避し、応答速度を向上させることができます。
動的データから画像を生成し、ユーザーのダウンロードを提供する必要があるとします。これは、次のようなURLパラメーターと組み合わせて実装できます。
https://gitbox.net/gen_image.php?text=Hello
gen_image.phpでパラメーターを読んだ後にテキストを描く:
$text = $_GET['text'] ?? 'Default';
// 画像を作成します
$img = imagecreate(120, 30);
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
// テキストを描きます
imagestring($img, 5, 5, 8, $text, $black);
// 出力はです WBMP
header("Content-Type: image/vnd.wap.wbmp");
imagewbmp($img);
imagedestroy($img);
WBMP形式は現代の開発では頻繁に使用されていませんが、特定の分野では依然として実際的に重要です。 ImageCreateとImageWBMP関数を組み合わせることにより、PHPは軽量の黒と白の画像を迅速に生成して、帯域幅と低いメモリ環境で画像表示のニーズを満たすことができます。これら2つの機能を効率的に使用する鍵は、それらの基本的な動作を理解し、リソースを合理的に割り当て、出力方法と画像の複雑さを制御することです。