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);
?>
View Code

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); //结束图形,释放内存空间
?>
View Code

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); //结束图像,释放内存空间
?>
View Code

 

posted @ 2013-06-11 17:38  clouds008  阅读(215)  评论(0编辑  收藏  举报