私はこのサイト上のように透かしを作りたい:それのhttp://9gag.comウォーターマーク(9gag.comスタイル)
主なものは、下の画像を短冊を置くことではなく、絵に置きます。私はPHPをGDライブラリとともに使用したいと思っています。任意のヘルプは、最高の1つは、サンプルコードまたは1つを使用する準備ができて評価されます:)
おはようございます!
私はこのサイト上のように透かしを作りたい:それのhttp://9gag.comウォーターマーク(9gag.comスタイル)
主なものは、下の画像を短冊を置くことではなく、絵に置きます。私はPHPをGDライブラリとともに使用したいと思っています。任意のヘルプは、最高の1つは、サンプルコードまたは1つを使用する準備ができて評価されます:)
おはようございます!
Xピクセル背が高いイメージを作成し、位置(0,0)
でそれに元の画像をコピーして位置(0,original_height)
で透かし:
$image = 'foo.jpg';
$watermark = 'watermark.png';
$imagesize = getimagesize($image);
$watermarksize = getimagesize($watermark);
$img = imagecreatetruecolor($imagesize[0], $imagesize[1] + $watermarksize[1]);
imagecopy($img, imagecreatefromjpeg($image), 0, 0, 0, 0, $imagesize[0], $imagesize[1]);
imagecopy($img, imagecreatefrompng($watermark), 0, $imagesize[1], 0, 0, $watermarksize[0], $watermarksize[1]);
imagejpeg($img);
テストし、それがそのように動作するはずはありません。このコードでは、ウォーターマークが元のイメージよりも広くないと想定しています。
見た目が良くても簡単ではありません。
下のストライプには、下のストライプのために左、中央、右の3つのチャンクが必要です。 3つのチャンクはすべて同じ高さにすることをお勧めします。
使用後
imagecreatetruecolor(imagesx($original_picture), imagesy($original_picture)+$stripe_height);
:
imagecopymerge(...)
あるimagecopymerge(...)
imagecopyresize(...)
を使用して中央のチャンクを追加します。この関数を使用して、左と右のチャンク間で線形にスケーリングされていることを確認します。あなたは漫画家ですか?単純な図ですが、それは何かを持っています:Dとbtw。私はあなたが話していることを知っているのを見て、おそらくあなたは私のためにコードを使用する準備ができていますか? – Snatch
ハッハッハ、ちょうどSnipping Toolのデフォルトチゼルです。私はIBM X61Tを持っています。また、すべてのことを書き込む時間はありませんが、それは簡単です。あなたがそれを行うことができない場合は、ちょうどElanceに行き、あなたのためにそれをするためにインドの$ 15を支払う。 –
可変イメージの幅を処理しません。 –
私はそれを確認した後、ウォーターマークの幅がイメージよりも小さくなるまで、さまざまなイメージの幅で動作します。 @ThiefMasterはこのストライプの背景色を変更する方法と、右下隅に透かしを入れる方法を教えてもらえますか? (今は左下にあります)。そしてまず第一に大きな感謝! – Snatch
'imagecolorallocate()'は色を作成するために 'imagecilledrectangle()'を描画します(2番目の 'imagecopy()'呼び出しと同じサイズを使い、その関数を呼び出す前にコードを入れます)。何かをコピーする前に画像全体を単に 'imagefill()'することもできます。 – ThiefMaster