1

次のように img src から値を渡しています。

ページA:

<img src="watermark.php?fname=<?php echo $image; ?>" />

次に、pageB の値を取得します。

$fname = $_GET['fname'];

$watermark_img = $passed_fname;

...

なんらかの理由で画像が表示されません...何か足りないのですか?

pageB の完全なコードは次のとおりです。

<?php  

$fname = $_GET['fname'];

$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
$watermark_img = $fname;
$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

1

いくつかの特殊文字が$image含まれていますか?

PHPurlencode()関数を使用してみてください:

<img src="watermark.php?fname=<?php echo urlencode($image); ?>/>

そして、2ページ目:

$fname = urldecode($_REQUEST['fname']);
于 2012-06-05T07:49:13.367 に答える
0

アドレスバーから直接透かしPHPを試してから、ソースを表示します。jpegヘッダーを設定する前に出力がある場合、ブラウザーはそれを処理できません。あなたは次のようなものを持っているかもしれません

エラー行3443234

JPEGIMAGECODE

その最初の行はそれを無効な画像にします。

于 2012-06-05T09:00:04.567 に答える
0

$fname に渡す値が単なる名前の場合は、フル パスを指定する必要がある場合があります。

$watermark_img = '/PATH_TO_THE_IMAGE/'.$fname;
于 2012-06-05T07:57:58.323 に答える