php中的图像水印

时间:2009-10-20 11:01:32

标签: php gd watermark

我想为图像添加水印并保存。这是我正在使用的代码。这里输出图像并将该输出存储到文件中。我想保存而不输出它。

// Load the stamp and the photo to apply the watermark to
$stamp = imagecreatefrompng('stamp.png');
$im = imagecreatefromjpeg('proverbs.jpeg');

// Set the margins for the stamp and get the height/width of the stamp image
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Copy the stamp image onto our photo using the margin offsets and the photo 
// width to calculate positioning of the stamp. 
  imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy -   $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

// Output and free memory
header('Content-type: image/png');
ob_start();
// output jpeg (or any other chosen) format & quality
imagejpeg($im, NULL, 85);
// capture output to string
$contents = ob_get_contents();
// end capture
ob_end_clean();
//imagepng($im);
imagedestroy($im);
$fh = fopen("proverbs.jpeg", "w" );
fwrite( $fh, $contents );
fclose( $fh );

2 个答案:

答案 0 :(得分:2)

将其保存到文件中?

只需更改

imagejpeg($im, NULL, 85);

imagejpeg($im, 'image.jpg', 85);

答案 1 :(得分:0)

这是代码,

<?php

header('content-type: image/jpeg');
$src = $_GET['src'];
$path = pathinfo($src);
$watermark = imagecreatefrompng('watermark.png'); 
$watermark_width = imagesx($watermark); 
$watermark_height = imagesy($watermark); 
$image = imagecreatetruecolor($watermark_width, $watermark_height); 
if ($path['extension']=='png') 
$image = imagecreatefrompng($src); 
else if ($path['extension']=='jpg'||$path['extension']=='jpeg') 
$image = imagecreatefromjpeg($src); 
$size = getimagesize($_GET['src']); 
$dest_x = $size[0] - $watermark_width-10; 
$dest_y = $size[1] - $watermark_height-10; 
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 50); 
imagejpeg($image); 
imagedestroy($image); 
imagedestroy($watermark); 

?> 

详情请见Image watermark in PHP