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

 

你可能感兴趣的:(PHP)