最近做东西再次遇到根据网页内容生成图片的问题
现将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 时,实际上什么也没做,反之完全合并。 |

目前评论:0