首页 > 代码库 > php图片的应用-生成带有水印文字的图片-生成带有水印图标的图片-生成缩略图(//为注释内容,不影响文件执行)

php图片的应用-生成带有水印文字的图片-生成带有水印图标的图片-生成缩略图(//为注释内容,不影响文件执行)

<?php
////////////////定义水印文字函数开始//////////////////
function watertext($i,$t=‘版权所有‘,$s=20,$c=‘white‘,$p=9){
    $img = imagecreatefromjpeg($i);   //imagecreatefromjpeg — 由文件或 URL 创建一个新图象。
   
    $cc = ‘‘;
////////switch循环,循环水印文字的颜色 开始//////
    switch($c){
        case ‘white‘:
            $cc = imagecolorallocatealpha($img,255,255,255,50);            
        break;
        case ‘red‘:
            $cc = imagecolorallocatealpha($img,255,0,0,50);          
        break;
        case ‘green‘:
            $cc = imagecolorallocatealpha($img,0,255,0,50);          
        break;
        case ‘blue‘:
            $cc = imagecolorallocatealpha($img,0,0,255,50);          
        break;
        default:
            $cc = imagecolorallocatealpha($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255),mt_rand(0,100));            
        break;       
    }
/////////switch循环,循环水印文字的颜色 结束//////

//imagecolorallocatealpha — 为一幅图像分配颜色 + alpha
    $c = imagecolorallocatealpha($img,255,255,255,80);   

//定义水印文字的字体
    $font = dirname(__FILE__).‘/h.ttf‘;    //dirname — 返回路径中的目录部分
    
//imagettfbbox — 取得使用 TrueType 字体的文本的范围
    $r = imagettfbbox($s,0,$font,iconv(‘gbk‘,‘utf-8‘,$t));  
    $ttfw = $r[2] - $r[0] + 10;
    $ttfh = $r[1] + 10;


    $x = imagesx($img)-$ttfw;  //imagesx — 取得图像宽度
    $y = imagesy($img)-$ttfh;  //imagesy — 取得图像高度

//imagettftext — 用 TrueType 字体向图像写入文本
    imagettftext($img,$s,0,$x,$y,$cc,$font,iconv(‘gbk‘,‘utf-8‘,$t));   
    imagejpeg($img,$i);     //imagejpeg — 输出图象到浏览器或文件。
    imagedestroy($img);     //imagedestroy — 销毁一图像
}
////////////////定义水印文字函数结束//////////////////


////////////////定义水印图标函数开始//////////////////
function watericon($i){
    $img = imagecreatefromjpeg($i);       //imagecreatefromjpeg — 由文件或 URL 创建一个新图象。
  
     // 找到某个文件夹下制作好的水印图标文件
    $l = dirname(__FILE__).‘/logo.png‘;    //dirname — 返回路径中的目录部分
    $logo = imagecreatefrompng($l);        //imagecreatefrompng — 由文件或 URL 创建一个新图象。


    $xx = imagesx($logo);                  //imagesx — 取得水印图像宽度
    $yy = imagesy($logo);                  //imagesy — 取得水印图像高度
    
        
    $x = imagesx($img)-$xx-15;             //定义水印图标在图片中的x坐标
    $y = imagesy($img)-$yy-15;             //定义水印图标在图片中的y坐标


    imagecopy($img,$logo,$x,$y,0,0,$xx,$yy);  //imagecopy — 拷贝图像的一部分
    
    imagejpeg($img,$i);                       ////imagejpeg — 输出图象到浏览器或文件。
    imagedestroy($img);                       //imagedestroy — 销毁一图像
    imagedestroy($logo);                      //imagedestroy — 销毁一图像  
}
//a.jpg  s_a.jpg
////////////////定义水印图标函数结束//////////////////




////////定义缩略图函数开始//////////

function thumd($i,$w=170,$h=0){   // 默认宽为170,高成比例
    $ww = $w;
    $hh = $h;
    
    $img = imagecreatefromjpeg($i);  ////imagecreatefromjpeg — 由文件或 URL 创建一个新图象。
    $iw = imagesx($img);             //imagesx — 取得水印图像宽度
    $ih = imagesy($img);             //imagesy — 取得水印图像高度
    
//如果高为0,则高按比例自动计算
    if($h==0){
        $hh = $w/$iw * $ih;    
    }
    
    $new = imagecreatetruecolor($ww,$hh);    //imagecreatetruecolor — 新建一个真彩色图像
    
//imagecopyresampled — 重采样拷贝部分图像并调整大小
imagecopyresampled($new,$img,0,0,0,0,$ww,$hh,$iw,$ih);   
    
//pathinfo — 返回文件路径的信息
    $path = pathinfo($i,PATHINFO_DIRNAME).‘/s_‘.pathinfo($i,PATHINFO_BASENAME);
    imagejpeg($new,$path);              ////imagejpeg — 输出图象到浏览器或文件。
    imagedestroy($new);                 //imagedestroy — 销毁一图像
    imagedestroy($img);                 //imagedestroy — 销毁一图像
}
////////定义缩略图函数结束//////////

php图片的应用-生成带有水印文字的图片-生成带有水印图标的图片-生成缩略图(//为注释内容,不影响文件执行)