在上週的工做中,第一次接觸和了解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偏移量 |
否 |
設置水印文字類型文件
參數 |
值 |
是否必傳 |
font |
文字字體文件路徑 |
是 |
輸出圖片(類型爲png)
- save($outImg, $name = 'out')
參數 |
值 |
是否必傳 |
outImg |
輸出圖片路徑 |
是,例子:項目路徑/runtime/ |
name |
輸出圖片名稱 |
否,默認out |
銷燬圖片資源,釋放內存(save方法會默認調用,若無調用save方法,則要手動調用)
四、使用
$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