网页水印图片制作|图片添加文字

摘要

php根据网页内容生成图片的实现方法

最近做东西再次遇到根据网页内容生成图片的问题

现将php网页生成水印图片及图片添加文字输出方法记录下来

picture.php    页面

<?php

//原图
$dst_path = '1.jpg';
//水印图
$src_path = '0.gif';
//创建图片的实例
$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, 200, 300, 0, 0, $src_w, $src_h, 50);
//如果水印图片本身带透明色,则使用imagecopy方法
imagecopy($dst, $src, -20, 90, 0, 0, $src_w, $src_h);

//字体文件
$font = 'simkai.ttf';
//颜色
$black = imagecolorallocate($dst, 255, 255, 0);

//将文字加入图片
imagefttext($dst, 40, 0, 0, 40, $black, $font, 'eyunzhu.com');

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

index.php   引用图像文件页面

<html>
<img src="picture.php"  />
</html>

效果图:

原图:

水印图:

附录:

imagecopymerge()

imagecopymerge() 函数用于拷贝并合并图像的一部分,成功返回 TRUE ,否则返回 FALSE 。

语法:

bool imagecopymerge( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y,
 int src_w, int src_h, int pct )

参数说明:

参数 说明
dst_im 目标图像
src_im 被拷贝的源图像
dst_x 目标图像开始 x 坐标
dst_y 目标图像开始 y 坐标,x,y同为 0 则从左上角开始
src_x 拷贝图像开始 x 坐标
src_y 拷贝图像开始 y 坐标,x,y同为 0 则从左上角开始拷贝
src_w (从 src_x 开始)拷贝的宽度
src_h (从 src_y 开始)拷贝的高度
pct 图像合并程度,取值 0-100 ,当 pct=0 时,实际上什么也没做,反之完全合并。

admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: