打水印時主要用的是PHP擴展ImageMagick,該擴展專門用於處理圖片,功能豐富,使用靈活,詳細介紹可參看官方文檔. 項目中用到的主要在upfile里,有打水印、裁剪、劃線、畫矩形、格式轉換等。其中打水印命令最為複雜,下麵對其中的參數和選項做個梳理。 convert +profile '*' s ...
打水印時主要用的是PHP擴展ImageMagick,該擴展專門用於處理圖片,功能豐富,使用靈活,詳細介紹可參看官方文檔.
項目中用到的主要在upfile里,有打水印、裁剪、劃線、畫矩形、格式轉換等。其中打水印命令最為複雜,下麵對其中的參數和選項做個梳理。
convert +profile '*' source -quality 80 -resize '800x600'
water.png -gravity southeast -geometry +0+0 -composite
-fill rgba\(255,255,255,0.35\) -font fzltchjt.TTF -pointsize 20 -stroke rgba\(0,0,0,0.22\) -strokewidth 1
-gravity SouthEast -draw "text 28,15 '貼圖ID:188916'" dest
- +profile
Use+profile profile_name
to remove the indicated profile.
'*'代表去除所有。但沒弄懂profile是啥。 - source 原圖片
- quality 質量,品質
- resize 重新設置大小,以上兩項均針對原圖片source
- water.png 水印圖片
- southeast 和 geometry 指定圖片疊加位置,遵循地理位置,上北下南左西右東,southeast就是右下角,geometry指定相對原點的偏移值
- composite 代表用多個圖片合併起來,這裡應該是將兩個圖片(source和water.png)疊加起來
- (下麵一些是對添加水印字體的設置)
- fill 填充顏色
- font 指定字體
- pointsize 字體大小,像素為單位
- stroke 描邊顏色
- strokewidth 描邊寬度
- -gravity SouthEast 第二個指定水印字體相對位置
- draw 繪製字體 text 28,15 代表相對水平和垂直位置,後面是具體值
- dest 目標輸出圖片
測試過部分參數,不知道理解的對不對,原參數實在太多了 -_-||