加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php生成图片缩略图性能示例

发布时间:2023-06-02 12:41:46 所属栏目:PHP教程 来源:
导读:本文实例讲述了php生成图片缩略图功能。分享给大家供大家参考,具体如下:完整代码如下:<?php /* * Created on 2011-3-18 * * To change the template for this generated file go to * Window - Preferences -

本文实例讲述了php生成图片缩略图功能。分享给大家供大家参考,具体如下:

完整代码如下:

<?php 

/* 

 * Created on 2011-3-18 

 * 

 * To change the template for this generated file go to 

 * Window - Preferences - PHPeclipse - PHP - Code Templates 

*/ 

/*构造函数-生成缩略图+水印,参数说明: 

$srcFile-图片文件名, 

$dstFile-另存文件名, 

$markwords-水印文字, 

$markimage-水印图片, 

$dstW-图片保存宽度, 

$dstH-图片保存高度, 

$rate-图片保存品质*/ 

makethumb("1.jpg","aa/b.jpg","50","50"); 

functionmakethumb($srcFile,$dstFile,$dstW,$dstH,$rate= 100,$markwords= null,$markimage= null) { 

  $data=GetImageSize($srcFile); 

  switch($data[2]) { 

    case1: 

      $im= @ImageCreateFromGIF($srcFile); 

    break; 

    case2: 

      $im= @ImageCreateFromJPEG($srcFile); 

    break; 

    case3: 

      $im= @ImageCreateFromPNG($srcFile); 

    break; 

  } 

  if(!$im)returnFalse; 

  $srcW= ImageSX($im); 

  $srcH= ImageSY($im); 

  $dstX= 0; 

  $dstY= 0; 

  if($srcW*$dstH>$srcH*$dstW) { 

    $fdstH=round($srcH*$dstW/$srcW); 

    $dstY=floor(($dstH-$fdstH) / 2); 

    $fdstW=$dstW; 

  }else{ 

    $fdstW=round($srcW*$dstH/$srcH); 

    $dstX=floor(($dstW-$fdstW) / 2); 

    $fdstH=$dstH; 

  } 

  $ni= ImageCreateTrueColor($dstW,$dstH); 

  $dstX= ($dstX< 0) ? 0 :$dstX; 

  $dstY= ($dstX< 0) ? 0 :$dstY; 

  $dstX= ($dstX> ($dstW/ 2)) ?floor($dstW/ 2) :$dstX; 

  $dstY= ($dstY> ($dstH/ 2)) ?floor($dstH/ s) :$dstY; 

  $white= ImageColorAllocate($ni, 255, 255, 255); 

  $black= ImageColorAllocate($ni, 0, 0, 0); 

  imagefilledrectangle($ni, 0, 0,$dstW,$dstH,$white);// 填充背景色 

  ImageCopyResized($ni,$im,$dstX,$dstY, 0, 0,$fdstW,$fdstH,$srcW,$srcH); 

  if($markwords!= null) { 

    $markwords= iconv("gb2312","UTF-8",$markwords); 

    //转换文字编码 

    ImageTTFText($ni, 20, 30, 450, 560,$black,"simhei.ttf",$markwords);//写入文字水印 

    //参数依次为,文字大小|偏转度|横坐标|纵坐标|文字颜色|文字类型|文字内容 

  }elseif($markimage!= null) { 

    $wimage_data=GetImageSize($markimage); 

    switch($wimage_data[2]) { 

      case1: 

        $wimage= @ImageCreateFromGIF($markimage); 

      break; 

      case2: 

        $wimage= @ImageCreateFromJPEG($markimage); 

      break; 

      case3: 

        $wimage= @ImageCreateFromPNG($markimage); 

      break; 

    } 

    imagecopy($ni,$wimage, 500, 560, 0, 0, 88, 31);//写入图片水印,水印图片大小默认为88*31 

    imagedestroy($wimage); 

  } //Cuoxin.com 

  ImageJpeg($ni,$dstFile,$rate); 

  ImageJpeg($ni,$srcFile,$rate); 

  imagedestroy($im); 

  imagedestroy($ni); 

?>

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!