图片处理

优质
小牛编辑
142浏览
2023-12-01

classpath : herosphp\image\VerifyCode

API说明

方法名称说明
getInstance创建验证码实例
configure配置验证码信息
generate产生验证码字符
show显示验证码图片

举个栗子:

$config = array('x'=>10, 'y'=>30, 'w'=>120, 'h'=>50, 'f'=>22);
$verify = VerifyCode::getInstance();
$verify->configure($config)->generate(5); //产生5位字符串
$verify->show('png');

生成缩略图

classpath : herosphp\image\ImageThumb

ImageThumb::makeThumb($size, $imgSrc, $outfile, $overwrite, $quality)

为指定的图片生成缩略图

参数名类型参数说明
$sizearray缩略图大小,$arr[0] => 宽,$arr[1] => 高。
如果 $arr[0] = 0,表示高度固定,宽度等比缩放。如arra y(0, 700),
反过来如果 $arr[1] = 0, $arr[0] > 0, 则表示固定宽度,高度自适应。
如果 $arr[0] > 0, $arr[1] > 0, 则表示直接缩放成指定的宽高。
$imgSrcstring原图路径
$outfilestring输出缩略图路径
$overwritebool是否覆盖原图
$qualityint缩略图的压缩质量

crop($position, $size, $imgSrc, $outfile, $overwrite, $quality)

裁剪图片, 其中$position参数指的是裁剪的起始位置 array(x, y)。其他的参数参考ImageThumb::makeThumb

还有一个 setFlag($flag) 方法,用来设置缩放方式的, 和上面的 $size 参数配合使用:

  • 0 => 直接缩放到目标大小(默认)
  • 1 => 等比缩放到指定的size
  • 2 => 指定宽度或者高度,另一维度按照等比缩放, 必须指定某一维度,而另一维度的值为0
  • array(0, 700) 高度最大700, 宽度等比缩放
  • array(700, 0) 宽度最大700,高对等比缩放

其他API

方法名方法说明
saveImage保存图片
showImage输出图片
$thumb = ImageThumb::getInstance();
$thumb->makeThumb(array(100, 100), 'src.jpg', 'dist.jpg', false);
$thumb->crop(array(0,0), array(100,100), 'src.jpg', 'crop.jpg', false);
$thumb->showImage();

生成图片水印

classpath : herosphp\image\ImageWater

API

方法名称方法说明
getInstance()创建图片实例
imageWaterMark( $_img_src, $_water_path)创建图片水印,$_img_src => 原图路径, $_water_str => 水印图片路径
stringWaterMark( $_img_src, $_water_str )创建文字水印,$_img_src => 原图路径, $_water_str => 水印字体
saveImage($filename, $quality = 90)保存图片
setFont设置 水印字体
setFontSize设置水印字体大小
setPosition设置 水印位置
setAlpha设置水印透明度
setFontColor设置字体颜色, 接受一个数组参数,如 array(210, 0, 0)

水印字体

  • '0' => 'suti.ttf', //新苏鹅卵石体
  • '1' => 'mao-ze-dong.ttf', //毛泽东体
  • '2' => 'hanyi-xiu-ying.ttf', //汉仪秀英繁体
  • '3' => 'wending-huocai.ttf', //文鼎火柴体 (英文字体)
  • '4' => 'ruixian-jt.ttf', //张海山锐线体简
  • '5' => 'hanyi-zhujie.ttf', //汉仪竹节繁体
  • '6' => 'ye-jing.ttf' //液晶体(英文字体)

水印位置

  • 0 => 左上角
  • 1 => 右上角
  • 2 => 右下角
  • 3 => 左下角
  • 4 => 居中
  • 5 => 随机