摘要:我們經常能在圖片上看到一些水印,一般分為圖片文字或者是兩種一起的結合。那么給圖片加水印就非常有必要了。怎么用實現給圖片加水印呢先來看看效果使用庫使用庫來實現效果圖像處理和手冊正所謂授人以魚不如授人以漁,光貼代碼不講實現過程的,都是耍流氓。
我們經常能在圖片上看到一些水印,一般分為圖片、文字或者是兩種一起的結合。那為什么要加水印呢?目的是為了防止別人盜圖、造假或者標注出處等,保護圖片原作者的著作權或是勞動成果。那么給圖片加水印就非常有必要了。
怎么用PHP實現給圖片加水印呢?
先來看看效果
使用GD庫來實現效果
圖像處理和 GD - 手冊
正所謂授人以魚不如授人以漁,光貼代碼不講實現過程的,都是耍流氓。所以下面我會寫功能的實現過程、過程所需要用到的函數。
內容基本都是干貨,需要用到的時候可以方便查閱資料關鍵函數
下面是php實現兩種水印方式的關鍵函數:
imagettftext 用 TrueType 字體向圖像寫入文本
imagecopymerge 拷貝并合并圖像的一部分
兩種水印的實現方式 圖片水印準備兩張圖片
原圖
水印圖
實現過程
在php中加載這兩張圖片,得到一個圖像資源數據類型。
根據不同的圖片格式,使用對應函數
它們甚至可以加載一張來自網上的圖片
讀取圖片寬高。
imagesx 取得圖像寬度
imagesy 取得圖像高度
getimagesize 取得圖像大小
getimagesizefromstring 從字符串中獲取圖像尺寸信息
可能你會需要將水印圖進行縮小或放大(如果不需要,可以跳過這一步)
等比例縮放
計算縮放比例,根據想要縮放到的值(比如一張寬度是500px的圖片,想縮小成50px)
計算縮放之后的寬高
創建一個新的圖像資源(新圖像的寬高等于縮放之后的寬高)
imagecreatetruecolor 新建一個真彩色圖像
拷貝部分圖像并調整大小
imagecopyresized 拷貝部分圖像并調整大小
參數說明(為了方便理解,我對參數進行了語義化)
imagecopyresized(目標圖像資源, 原圖資源, 粘到目標圖像的起始水平坐標, 粘到目標圖像的起始垂直坐標, 拷貝原圖的起始水平坐標, 拷貝原圖的起始垂直坐標, 最終想要的寬度, 最終想要的高度, 原圖的寬度, 原圖的高度);
使用imagecopymerge函數,拷貝水印圖并合并到原圖中。
簡單分析形參都有哪些(為了方便理解,我對參數進行了語義化)
imagecopymerge(原圖資源, 水印圖資源, 水印水平坐標, 水印垂直坐標, 拷貝水印圖的起始水平坐標, 拷貝水印圖的起始垂直坐標, 要拷貝的寬度, 要拷貝的高度, 水印透明度);
水印透明度:透明度范圍是0-100
輸出圖像
函數關鍵字image+圖片格式 更多查看官方手冊
imagejpeg 輸出圖象到瀏覽器或文件。
imagepng
imagegif
imagewbmp
...
如果要輸出到瀏覽器中,需要設置content-type頭部
header - 手冊 發送原生 HTTP 頭
常用對照表
釋放圖像資源
imagedestroy 銷毀圖像
文字水印簡單分析形參都有哪些(為了方便理解,我對參數進行了語義化)
imagettftext(圖像資源, 文字尺寸, 文字角度, 文字水平坐標, 文字垂直坐標, 文字顏色, 字體, 文本文字)
文字尺寸
GD庫版本是1時,單位是像素(px),版本是2時,單位是點/磅(pt)
px,pt,em換算表
文字水平垂直基點位置
字符的左下角為基本點
文字顏色
顏色索引,通過imagecolorallocate函數創建
字體
字體的絕對路徑
其他參考
絕對詳解PHP 的imageTtfText()函數
如果這對你有幫助,或者能幫你節省一些時間,不如,點個贊吧~
原文地址
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/29600.html
摘要:在出現之前,項目中的圖片添加水印的需求,必定是后端同學們來處理的,但是出來之后,前端終于可以站出來說,這個需求,交給我來壯哉我大前端,上周的任務就是在前端處理水印的效果,這個效果最重要的邏輯其實就幾行代碼,至于如何優雅的將這些簡單的邏輯封裝 在canvas出現之前,項目中的圖片添加水印的需求,必定是后端同學們來處理的,但是canvas出來之后,前端終于可以站出來說,這個需求,交給我來!...
摘要:有時上傳圖片時,需要給圖片添加水印,水印一般為文字或圖片水印,下面就來看看兩種添加方法。拷貝并合并圖像的一部分更多庫函數用法,請查手冊相關文章實現圖片上傳時添加文字和圖片水印 有時上傳圖片時,需要給圖片添加水印,水印一般為文字或圖片logo水印,下面就來看看兩種添加方法。 一、文字水印 文字水印就是在圖片上加上文字,主要使用gd庫的imagefttext方法,并且需要字體文件。效果圖如...
閱讀 2189·2021-11-24 09:38
閱讀 3249·2021-11-08 13:27
閱讀 3091·2021-09-10 10:51
閱讀 3160·2019-08-29 12:20
閱讀 672·2019-08-28 18:28
閱讀 3467·2019-08-26 11:53
閱讀 2715·2019-08-26 11:46
閱讀 1525·2019-08-26 10:56