thinkPHP框架实现图像裁剪、缩放、加水印的方法

作者:袖梨 2022-06-24

ThinkPHP 图片处理函数,需要文字水印字体,可在windows下 控制面板 > 大图标(右上角) > 字体 找到需要的字体

 

 代码如下复制代码

/**

* 图像的裁剪、缩放、加水印

* @param string $path    路径

* @param int $width   裁剪的宽度/限制的高度或宽度,当有$height值时此值为图片的宽度,否则为限制的宽度或高度

* @param int $height   [可选]裁剪的高度

* @param boolean $water   [可选]是否加水印

* @param int $word    [可选]水印文字

*/

functionzoom_image($path,$width= 300,$height= null,$water= null,$word='water'){

  $image=newThinkImage();

  $image->open($path);

  $imgWidth=$image->width();

  $imgHeight=$image->height();

  // 限制尺寸

  if($widthand!$height){

    $maxSize=$width;

    // 宽度或高度大于规定尺寸时

    if($imgWidth>$maxSizeor$imgHeight>$maxSize){

      $size= image_min_width($imgWidth,$imgHeight,$maxSize);

      $image->thumb($size['width'],$size['height']);

      $do= true;

      $dowater= true;

    }

  // 裁剪固定尺寸

  }elseif($widthand$height){

    $size= image_min_width($imgWidth,$imgHeight,$width);

    $image->thumb($size['width'],$size['height'])->crop($width,$height);

    $do= true;

    $dowater= true;

  }

  if($dowaterand$waterand$word){

    $image->text($word,'./Public/images/arial.ttf',20,'#dddddd', ThinkImage::IMAGE_WATER_SOUTHEAST,-10);

  }

  // 未操作则不保存

  if($do){

    $image->save($path);

  }

}

 

相关文章

精彩推荐