PHP实现文字水印和图片水印(附源码)

文字水印

<?php
	$dst_path = './upload/01.jpg';
	//创建图片的实例
	$dst = imagecreatefromstring(file_get_contents($dst_path));
	//打上文字
	$font = './simsun.ttc';//字体
	$black = imagecolorallocate($dst, 0x00, 0x00, 0x00);//字体颜色
	imagefttext($dst, 13, 0, 60, 20, $black, $font, '快乐编程');
	//输出图片
	list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
	switch ($dst_type) {
	    case 1://GIF
	        header('Content-Type: image/gif');
	        imagegif($dst);
	        break;
	    case 2://JPG
	        header('Content-Type: image/jpeg');
	        imagejpeg($dst);
	        break;
	    case 3://PNG
	        header('Content-Type: image/png');
	        imagepng($dst);
	        break;
	    default:
	        break;
	}
	imagedestroy($dst);
?>

图片水印

$dst_path = 'dst.jpg';
$src_path = 'src.jpg';

//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));
$src = imagecreatefromstring(file_get_contents($src_path));

//获取水印图片的宽高
list($src_w, $src_h) = getimagesize($src_path);

//将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果
imagecopymerge($dst, $src, 10, 10, 0, 0, $src_w, $src_h, 50);
//如果水印图片本身带透明色,则使用imagecopy方法
//imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);

//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
switch ($dst_type) {
    case 1://GIF
        header('Content-Type: image/gif');
        imagegif($dst);
        break;
    case 2://JPG
        header('Content-Type: image/jpeg');
        imagejpeg($dst);
        break;
    case 3://PNG
        header('Content-Type: image/png');
        imagepng($dst);
        break;
    default:
        break;
}

imagedestroy($dst);
imagedestroy($src);

猜你喜欢

转载自570109268.iteye.com/blog/2413592