您的位置:首页 > 编程学习 > > 正文

python处理水印(Yii 使用intervention/image拓展实现图像处理功能)

更多 时间:2022-01-23 02:56:54 类别:编程学习 浏览量:2268

python处理水印

Yii 使用intervention/image拓展实现图像处理功能

一:安装intervention/image拓展

composer require intervention/image

二:上传文件

  • ?
  • 1
  • 2
  • \Intervention\Image\ImageManagerStatic::make($_FILES['file']['tmp_name'])->save('upload.jpg');//file为上传表单的name名
  • \Intervention\Image\ImageManagerStatic::make($_FILES['file']['tmp_name'])->resize(300, 200)->save('upload.jpg');//file为上传表单的name名,并将上传的图片压缩成300,200
  • 同时实现单图上传和多图上传

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • if ($_FILES['file']) {
  •   $image = $_FILES['file']['tmp_name'];
  •   if (is_array($image)) {
  •     //多图上传
  •     foreach ($image as $key => $item) {
  •       \Intervention\Image\ImageManagerStatic::make($item)->save($key.'upload.jpg');
  •     }
  •   } else {
  •     //单图上传
  •     \Intervention\Image\ImageManagerStatic::make($image)->save('upload.jpg');
  •   }
  • }
  • 三:添加水印

    1:添加文字水印

    添加文字水印主要使用到text方法

    text方法参数说明

    x(可选)

    x定义第一个字符的基点。默认值:0

    y(可选)

    y定义第一个字符的基点。默认值:0

    callback(可选)

    关闭字体对象的回调,回调可配置:

    (1)file:配置水印字体
    (2)size:配置水印大小
    (3)color:配置水印颜色
    (4)align:配置水印水平对齐方式
    (5)valign:配置是垂直对齐方式
    (6)angle:配置水印旋转角度
    例:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • //水印
  • ImageManagerStatic::make('upload.jpg')->text('水印文字',20,30,function($font){
  •   //配置水印字体
  •   $font->file(\Yii::getAlias('@webroot') . '/simsun.ttc');
  •   //配置水印大小
  •   $font->size(30);
  •   //配置水印颜色
  •   $font->color('#fff');
  •   //配置水印水平居左( left, right and center)
  •   $font->align('left');
  •   //配置水印垂直居下(top, bottom and middle)
  •   $font->valign('bottom');
  •   //配置水印旋转角度
  •   $font->angle(45);
  • })->save('uploadWater.jpg');
  • 2:添加图片水印

    添加图片水印主要使用到insert方法

    insert方法参数说明:

    source:水印图片地址

    position:设置插入图像的位置,参数可配置项为:

    (1)top-left (default)
    (2)top
    (3)top-right
    (4)left
    (5)center
    (6)right
    (7)bottom-left
    (8)bottom
    (9)bottom-right

    x:水平偏移量,默认0

    y:垂直偏移量,默认0

    例:

  • ?
  • 1
  • ImageManagerStatic::make('upload.jpg')->insert('water.jpg','bottom-left',10,10)->save('uploadWater.jpg');
  • 这里是intervention/image拓展的一些基本操作,详细可以参考: http://image.intervention.io/

    总结

    以上所述是小编给大家介绍的Yii 使用intervention/image拓展实现图像处理功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

    原文链接:https://segmentfault.com/a/1190000019544737

    您可能感兴趣