php圖片水印處理

在上週的工做中,第一次接觸和了解php對圖像的相關處理。php在圖像的處理中主要依賴於GD拓展,其主要的操做方法能夠參考php手冊,連接:GD 和圖像處理。我回顧了這次工做中的功能開發,封裝了一個圖像處理的相關類庫。php

Image類庫

  • 主體功能:圖片合成,水印處理等
  • author: Javion
  • email:535090976@qq.com

一、使用場景

  • 圖片合成
  • 文字水印

二、配置說明(默認配置以下)

$config = [

 /**
  * 水印字體(默認字體不支持中文,請按需配置須要的字體)
  */
 'font'       => __DIR__ . '/font.ttf',

 /**
  * 水印位置(1~9,9宮格位置,其餘爲隨機)
 */
 'pos'        => 9,

 /**
  * 相對pos的x偏移量
  */
 'posX'       => 0,

 /**
  * 相對pos的y偏移量
  */
 'posY'       => 0,

 /*
  * 水印透明度
  * 填寫0~100間的數字,100爲不透明
 */
 'opacity'        => 100,

 /**
  * 透明度參數 alpha,其值從 0 到 127。0 表示徹底不透明,127 表示徹底透明
  */
 'alpha'         => 0,

 /*
  * 默認水印文字
  */
 'text'       => 'Javion',

 /*
  * 文字顏色 顏色使用16進製表示
 */
 'textColor' => '#FF4040',

 /*
  * 文字大小
  */
 'textSize'  => 12,
 
 ];

三、方法說明

類初始化

  • __construct($image, array $config = [])
參數 是否必傳
image 原圖片路徑
config 配置數組,根據業務自定義配置,無則爲默認值

往原圖添加水印圖片

  • waterImg($waterImg, $pos, $opacity = 0, $posX = 0, $posY = 0)
參數 是否必傳
waterImg 水印圖片路徑
pos 水印位置
opacity 透明度
posX 位置x偏移量
posY 位置y偏移量

往原圖添加水印文字

  • waterText($text, $pos = 0, $textColor = '', $textSize = 0, $alpha = 0, $posX = 0, $posY = 0)
參數 是否必傳
text 水印文字
pos 水印位置
textColor 顏色
textSize 文字size
alpha 透明度
posX 位置x偏移量
posY 位置y偏移量

設置水印文字類型文件

  • setFont($font)
參數 是否必傳
font 文字字體文件路徑

輸出圖片(類型爲png)

  • save($outImg, $name = 'out')
參數 是否必傳
outImg 輸出圖片路徑 是,例子:項目路徑/runtime/
name 輸出圖片名稱 否,默認out

銷燬圖片資源,釋放內存(save方法會默認調用,若無調用save方法,則要手動調用)

  • destroy() 無參數

四、使用

$a = __DIR__ . '/Javion.png';

$image = new Watermark($a);

b = __DIR__ . '/';

$c = __DIR__ . '/water.png';

$image->waterText('zzwtestd', 8)->waterImg($c, 2, 50)->save($b);

五、安裝使用

composer require javion/image

github地址:https://github.com/slumzzw/Image

相關文章
相關標籤/搜索