0

Webページの画像に透かしを入れるスクリプトをテストしています。

スクリプトは正常に機能し、画像は透かしですが、私の問題は、画像のみがページに表示されることです。

スクリプトをページに追加するとすぐに、Webページが透かしを入れている画像に変換されるようになります。

ヘッダー( "content-type:image / jpeg");のせいだと思います。コードから。

Webページの画像に透かしを入れる必要がありますが、Webページの残りの部分も表示する必要があります。

これはどのように行われますか?私はこれがどのように機能するかについてかなり混乱しています。

私が使用しているスクリプトはここからです

これが私が使用しているコードです:

<?php  

$main_img       = "Porsche_911_996_Carrera_4S.jpg"; // main big photo / picture
$watermark_img  = "watermark.gif"; // use GIF or PNG, JPEG has no tranparency support
$padding        = 3; // distance to border in pixels for watermark image
$opacity        = 100;  // image opacity for transparent watermark

$watermark  = imagecreatefromgif($watermark_img); // create watermark
$image      = imagecreatefromjpeg($main_img); // create main graphic

if(!$image || !$watermark) die("Error: main image or watermark could not be loaded!");


$watermark_size     = getimagesize($watermark_img);
$watermark_width    = $watermark_size[0];  
$watermark_height   = $watermark_size[1];  

$image_size     = getimagesize($main_img);  
$dest_x         = $image_size[0] - $watermark_width - $padding;  
$dest_y         = $image_size[1] - $watermark_height - $padding;


// copy watermark on main image
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $opacity);


// print image to screen
header("content-type: image/jpeg");   
imagejpeg($image);  
imagedestroy($image);  
imagedestroy($watermark);  

?>

:データベースから画像パスを取得しているため、動的であるため画像ファイル名をハードコーディングできません。

4

3 に答える 3

5

初めて行う場合、これは少し気が遠くなるようなことですが、それがどのように機能するかを一度見れば、それは本当に簡単です。;)

画像を生成する1つのスクリプト(例:image.php)が必要であり、メインスクリプトはその画像を参照します(例:)<img src="image.php">。1つのリクエスト/スクリプトでドキュメントと画像の両方を同時に返すことはできません。

(追記:実際には可能ですが、画像を非常に奇妙な種類のsrc属性としてエンコードする必要があります。やりたくないので、私を信じてください。)

于 2012-06-04T22:18:41.990 に答える
2

これがどのように機能するかについて混乱したと思います。上記の透かし生成コードは、スクリプト/ロジックを生成するページに含まれることを意図したものではありません。<img src="./path/to/script"/>代わりに、独自のURLの背後からアクセス可能であり、その画像を含めるサイトにリンクする必要があります。

于 2012-06-04T22:18:42.273 に答える
0

このスクリプトを「メインのWebサイト」スクリプトから完全に分離してください。Webサイトで、<img>透かしのスクリプトをソースとしてタグを使用します。

content-typesあなたがしているように見えるように、2つの異なるものを組み合わせることができません。「Webページ」を表示したい場合は、であるcontent-type必要がありますtext/html。画像だけを表示したい場合は、であるcontent-type必要がありますimage/*

于 2012-06-04T22:18:58.363 に答える