PHP画像処理を実行する場合、 Image2WBMP()はあまり一般的ではありませんが、既存の機能です。その主な機能は、画像リソースをWBMP(ワイヤレスビットマップ)形式に出力することです。これは、かつて初期のモバイルデバイスで広く使用されていました。しかし、今日の開発環境では、 Image2WBMP()を使用して、特に画像のサイズと伝送効率が必要なシナリオで画像の最適化方法を調査できます。
まず第一に、私たちは明確にする必要があります。Image2WBMP()自体は、WBMP形式は本質的に白黒のビットマップであるため、画質を直接制御できません。つまり、各ピクセルには黒または白の2つの状態しかなく、グレースケールと色をサポートしていません。したがって、従来の「画質」はWBMP形式では適用されません。しかし、それはそれを使用している間に最適化できないという意味ではありません。
WBMP形式は時代遅れですが、その非常に単純な機能により、組み込みシステム、ミニマリストのWeb端子、または画像サイズの非常に高い圧縮要件を備えたインターフェイスなど、特定の特別なシナリオで価値があります。 Image2wbmp()は、この画像を迅速に生成する方法を提供し、他の画像処理方法と組み合わせることで、特定の最適化ロールを再生できます。
image2wbmp()には品質パラメーターはありませんが、次のヒントを使用して、出力前に画像のパフォーマンスを最適化することができます。
画像サイズのスケーリング
画像のバイナリ処理(白黒変換のより細かい制御)
カスタムカラーチューニング処理(より適切なグレースケール分布への画像の処理)
以下に、単純なコード例を使用して、プロセス全体を説明します。
<code> <?php //入力画像パスを設定します
$ source = ' https://m66.net/images/sample.jpg ';
//画像をロードします
$ image = imagecreatefromjpeg($ source);
//画像のサイズを変更して、全体の画像の複雑さを減らす(幅:100、高さ:比率拡張スケーリング)
$ width = 100;
$ height = imagesy($ image) *($ width / imagesx($ image));
$ resized = imageCreatetrueColor($ width、$ height);
ImageCopyResampled($ resized、$ image、0、0、0、0、$ width、$ height、imagesx($ image)、images($ mage));
//グレースケールに変更します
ImageFilter($ sezized、img_filter_grayscale);
//マニュアルの二等分(しきい値は128に設定されています)
for($ y = 0; $ y <$ height; $ y ++){
for($ x = 0; $ x <$ width; $ x ++){
$ rgb = imagecolorat($ resized、$ x、$ y);
$ gray = $ rgb&0xff;
$ color =($ gray <128)? 0:255;
$ bw = imageColorAllocate($ resized、$ color、$ color、$ color);
ImagesEtpixel($ resized、$ x、$ y、$ bw);
}
}
// WBMP画像として出力
ヘッダー( 'content-type:image/vnd.wap.wbmp');
image2wbmp($ sezized);
//メモリをきれいにします
Imagedestroy($ image);
Imagedestroy($ sezized);
?>
</code>
Image2wbmp()自体は、JPEGなどの「品質パラメーター」をサポートしていませんが、画像スケーリング、グレースケール処理、手動の二等分などを通じて、画像の「品質」の最適化制御をある程度達成できます。この方法は、非常に高いボリューム要件と非常に低い色の要件を備えた特定のシナリオに適しています。
最新のWebアプリケーションの場合、極端な制限下にない場合は、JPEG、WebP、AVIFなどの圧縮比調整をサポートする形式を使用することをお勧めします。ただし、WBMPを使用するための特別なニーズが本当にある場合は、 Image2WBMP()を合理的に使用して画像の前処理を使用することで、良い結果を得ることができます。