ホームページ >バックエンド開発 >PHPチュートリアル >PHPマスター| Imagicickを使用した画像透かし
<span><span><?php </span></span><span><span>// Open the original image </span></span><span><span>$image = new Imagick(); </span></span><span><span>$image->readImage("/path/to/image.jpg"); </span></span><span> </span><span><span>// Open the watermark </span></span><span><span>$watermark = new Imagick(); </span></span><span><span>$watermark->readImage("/path/to/watermark.png"); </span></span><span> </span><span><span>// Overlay the watermark on the original image </span></span><span><span>$image->compositeImage($watermark, imagick<span>::</span>COMPOSITE_OVER, 0, 0); </span></span><span> </span><span><span>// send the result to the browser </span></span><span><span>header("Content-Type: image/" . $image->getImageFormat()); </span></span><span><span>echo $image;</span></span>Imagicickクラスの新しいインスタンスを作成し、そのreadimage()メソッドを使用して、パスから画像を開くことができます。 Imagicickの良い点の1つは、ImageMagickがサポートするためにコンパイルされたファイルのいつでも開くことができることです。そのため、ファイルがJPEGまたはPNGであることを明示的に伝える必要はありません。それ自体でそれを理解するのに十分賢いです。 ウォーターマーク画像をオーバーレイするには、CompositeImage()メソッドを使用します。この例では、メソッドは4つのパラメーターを受け入れます。1つ目はオーバーレイされる画像、2つ目は、イメージックが実行すべき組成操作のタイプを表す定義済みの定数であり(異なる効果を達成するために選択できる全体のスリーがあります)、3番目と4番目のパラメーターは、トップレフトコーナーからピクセルで測定された透かしを配置するXおよびY座標です。 デフォルトでは、PHPはスクリプトの出力がHTMLであると想定し、A TEXT/HTMLContent-Typeヘッダーを自動的に送信します。画像を出力すると、ヘッダーがテキストを送信していることを伝えているため、ブラウザは適切に処理されません。訪問者がGibberishのページで迎えられないようにするには、画像を送信する前にHeader()を使用してより適切なヘッダーを送信するようにPHPに指示する必要があります。コンテンツタイプのヘッダーの値をハードコーディングする代わりに、この例では、Imagick自体を使用して画像のタイプにアクセスし、その後、適切なMimeタイプをその場で構築するために使用されます。 これが最終結果、透かし式画像です。
<span><span><?php </span></span><span><span>// Open the original image </span></span><span><span>$image = new Imagick(); </span></span><span><span>$image->readImage("/path/to/image.jpg"); </span></span><span> </span><span><span>// Open the watermark </span></span><span><span>$watermark = new Imagick(); </span></span><span><span>$watermark->readImage("/path/to/watermark.png"); </span></span><span> </span><span><span>// Overlay the watermark on the original image </span></span><span><span>$image->compositeImage($watermark, imagick<span>::</span>COMPOSITE_OVER, 0, 0); </span></span><span> </span><span><span>// send the result to the browser </span></span><span><span>header("Content-Type: image/" . $image->getImageFormat()); </span></span><span><span>echo $image;</span></span>getImageWidth() getImageHeight()メソッドは、ピクセルで測定された画像の幅と高さをそれぞれ返します。ウォーターマーク画像の幅と高さを元の画像の画像と比較することにより、透かしをサイズ変更する必要があるかどうかを判断して、小さな画像に適合するかどうかを判断できます。 透かしの変更は、許可された幅と高さをとるScaleImage()メソッドを呼び出すことで実現されます。このメソッドは、画像のアスペクト比を維持しながら、最大幅が許容幅より大きくなく、最大高さが許容された高さよりも大きくないように画像を縮小します。 そして、これがこの例から生じる透かしの画像です:
画像の透かしを作成する方法はいくつかあります。 Adobe Photoshopのようなグラフィックデザインソフトウェアや、watermark.wsなどの無料のオンラインツールを使用できます。これらのプラットフォームを使用すると、ロゴやテキストをアップロードし、その不透明度を調整して透かしを作成できます。その後、この透かしを保存して画像に適用できます。
特定のソフトウェアを使用して画像から透かしを削除することは技術的には可能ですが、一般に非倫理的で潜在的に違法と見なされます。透かしの目的は、作成者の知的財産権を保護することです。それを削除することは、これらの権利を侵害し、法的結果につながる可能性があります。
透かしはどこに配置すればよいですか?
透かしの外観をカスタマイズできますか?
透かしの画像が必要ですか?
以上がPHPマスター| Imagicickを使用した画像透かしの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。