Web開発では、画像が盗まれたり、ブランドアイデンティティに使用されたりするのを防ぐために、商標、テキスト、または透明なレイヤーなどの画像に透かしを追加する必要があります。 PHPでは、GDライブラリは豊富な画像処理機能を提供し、 ImageColorallocatealphaは透明な色を実装するためのキーの1つです。
この記事では、 ImageColorallocatealpha関数を使用して、画像に半透明のテキスト透かしを追加する方法を詳細に説明します。
ImageColorallocatealphaは、画像に色を割り当てるために使用され、その透明度(アルファ値)を指定できるPHP GDライブラリの関数です。その関数定義は次のとおりです。
int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )
で:
$画像:ターゲット画像リソース。
$ red、$ green、$ Blue :色のRGBコンポーネント(0〜255)。
$ alpha :透明性、0(完全に不透明)から127(完全に透明)の範囲の値。
注:これは、CSSのアルファの概念とは異なります。 CSSのアルファは透明性があり、ここで0は不透明を意味します。
次に、完全な例を使用して、半透明のテキスト透かしを画像に追加します。
画像があるとします: https://m66.net/images/sample.jpg 。
<?php
// 元の画像をロードします
$imagePath = 'https://m66.net/images/sample.jpg';
$image = imagecreatefromjpeg($imagePath);
// フォントファイルの設定(サーバーにこのファイルがあることを確認してください)
$fontFile = './arial.ttf'; // 実際のものを使用してください ttf フォントファイルパス
// 半透明の色を割り当てます(白,透明性 50%)
$whiteAlpha = imagecolorallocatealpha($image, 255, 255, 255, 63); // alpha 63 ≈ 半透明
// テキストの透かしを追加します
$text = 'm66.net';
$fontSize = 20;
$x = 20;
$y = 50;
imagettftext($image, $fontSize, 0, $x, $y, $whiteAlpha, $fontFile, $text);
// ブラウザに画像を出力します
header('Content-Type: image/jpeg');
imagejpeg($image);
// 画像リソースを破壊します
imagedestroy($image);
?>
?写真の読み込み<br> ImageCreateFromJPegを使用してJPEG画像をロードすると、必要に応じてImageCreateFrommpngまたはImageCreateFromgifを使用することもできます。
?透明性のある色を割り当てます
ImageColorallocatealpha($ image、255、255、255、63)には白い半透明の色が割り当てられています。 63は約50%の透明度(127/2)です。
?テキストを追加します
imagettftextは、画像上にTrueTypeフォントにテキストを描画するために使用され、フォントファイルパスが必要です。
?出力と破壊<br> ヘッダー( 'content-type:image/jpeg')を介して応答タイプを設定し、 imagejpegを使用して画像をブラウザーに出力します。最後に、 Imagedestroyを使用してメモリを解放します。
GDライブラリを有効にする必要があります。PHP環境にGDライブラリがインストールされ、有効になっていることを確認してください。
フォントファイルパスは正しいです。imagettftextにはフォントファイル(.ttf)が必要です。パスが間違っている場合、テキストは表示されません。
ファイルに保存:ブラウザに直接出力したくない場合は、 ImageJPeg($ image、 'output.jpg')を使用してファイルに保存できます。
ImageColorallocatealphaを使用すると、さまざまな透過効果を実現するために、透明な色を画像に簡単に割り当てることができます。 ImagetTftextやImageFilledRectangleなどの関数を組み合わせると、美しく実用的なプロフェッショナルな半透明の透かしを作成できます。
次回写真を保護する必要があるときは、PHPを使用して独自の透かしを生成してみてください。完全なコードの例またはより多くの透かしのヒントが必要な場合は、メッセージを残すことができ、さらに詳細なコンテンツを共有し続けます。