PHP图形图像的典型应用 --简单图像的应用(水印)
php使用图像要用到GD或GD2库。才行。如果要高级的图形形状,还可以下载JPgraph类库它是完全由php语言写的。当然也是基于GD/GD2库的
1、创建一个简单的图像
<?php /*在图像输出前,不能有html元素输出*/ header("Content-type:image/jpeg"); //这里要设置一下头信息、告诉页面以什么方式呈现。否则直接输出图像会乱码 /* ---------------例 12.1 创建一个简单的普通的图像 ---------------- */ $im = imagecreate(200,60); //创建一个画布 $white = imagecolorallocate($im,255,66,159); imagegif($im); ?>
2、在照片上添加文字(文字水印)
<?php /* ----------------- 例 12.2 在照片上添加文字。可以是水印 -------------------*/ header("Content-type:image/jpeg"); //这里要设置一下头信息、告诉页面以什么方式呈现。否则直接输 $im = imagecreatefromjpeg("images/123.jpg"); //载入图片 $textcolor = imagecolorallocate($im,56,73,136); //设置字体颜色为蓝色,值为RGB颜色值 $fnt = "c:/windows/fonts/simhei.ttf"; //定义字体 /* 这里关于转不转的问题,原理我还没弄明白。但是有一个判断的方法: charset=utf-8, 如果html页面的指定显示编码为utf-8的话,那么中文字就不需要用iconv转。如果是那种 gb2312的编码就必须转utf-8 。因为在php中GD2这个图形库对中文的支持只认识utf-8的编码. */ //$motto = iconv("gb2312","utf-8","长白山天池"); //定义输出字体串 $motto = "长白山天池"; imagettftext($im,50,0,20,150,$textcolor,$fnt,$motto); //写ttf文字到图形中 imagejpeg($im); //建立jpeg图形 imagedestroy($im); //结束图形,释放内存空间 ?>
3、图片水印
<?php /* ---------------- 图片水印 ----------- */ header("Content-type:image/jpeg"); //这里要设置一下头信息、告诉页面以什么方式呈现。否则直接输 $im = imagecreatefromjpeg("images/123.jpg"); //载入背景图 $iml = imagecreatefromjpeg("images/321.jpg"); //载入背景图 $imarr = getimagesize("images/321.jpg"); //获取图片的大小类型等信息。具体返回请查阅php帮助手册 imagecopy($im,$iml,20,150,0,0,$imarr[0],$imarr[1]); //将一张图片复制到一张图片上,具体请看php手册 imagejpeg($im); imagedestroy($im); //结束图像,释放内存空间 ?>