概述
水印操作可以在圖片上設置另外一張圖片或者文字做為水印。
水印類型分成圖片水印,文字水印,和文圖混合水印。
說明
下面只給出各個接口的示例,具體使用可以參考示例代碼。
基本參數
圖片水印,文字水印,和文圖混合水印都可以使用如下參數。
| 名稱 | 描述 | 是否必須 |
|---|---|---|
| t | 透明度, 如果是圖片水印,就是讓圖片變得透明,如果是文字水印,就是讓水印變透明。 整數形式,取值是[0, 100]。默認值是100,表示100%(不透明)。 | 否 |
| p | 水印打在圖的位置,位置如區域數值對應表所示。 整數形式,取值是[1, 9]。默認值是9,表示在右下角打水印 。 | 否 |
| x | 水印距離圖片邊緣的水平距離,這個參數只有當水印位置是左上,左中,左下, 右上,右中,右下才有意義。 整數形式,取值是[0, 4096]。默認值是10 。單位是像素(px)。 | 否 |
| y | 水印距離圖片邊緣的垂直距離, 這個參數只有當水印位置是左上,中上, 右上,左下,中下,右下才有意義。 整數形式,取值是[0, 4096]。默認值是10。單位是像素(px)。 | 否 |
| voffset | 水印中線垂直偏移,當水印位置在左中,中部,右中時,可以指定水印位置根據中線往上或者往下偏移。 整數形式,取值是[-1000, 1000],默認值是0 。單位是像素(px)。 | 否 |
區域數值對應表

注意
水平邊距、垂直邊距、中線垂直偏移可以調節不僅可以調節水印在圖片中的位置,而且當圖片存在多重水印時,也可以調節兩張水印在圖中的布局。
示例
右下角打上文字水印://oos-cn.ctyunapi.cn/docs/example.jpg@oosImage|watermark=2&type=d3F5LXplbmhlaQ&size=40&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ
右下角打上文字水印,水平邊距是 10,垂直邊距20://oos-cn.ctyunapi.cn/docs/example.jpg@oosImage|watermark=2&type=d3F5LXplbmhlaQ&size=40&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ&color=I0ZGRkZGRg&t=90&p=9&x=10&y=20
右中部分打上水印,水平邊距為10, 垂直中線偏移為20,透明度為50://oos-cn.ctyunapi.cn/docs/example.jpg@oosImage|watermark=2&type=d3F5LXplbmhlaQ&size=40&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ&color=I0ZGRkZGRg&t=50&p=6&x=10&voffset=20
圖片水印
圖片水印就是在原圖的基礎上加上一張水印圖片。
訪問類型
@oosImage|watermark=1&bucket=bucketName&object=<encodedobject>&t=<transparency>&x=<distanceX>&y=<distanceY>&p=<position>…其中watermark與object兩個參數為必填項。
參數
| 名稱 | 描述 | 是否必須 |
|---|---|---|
| object | 水印圖片的object名字(必須編碼)。 內容必須是url 安全Base64編碼 EncodedObject = url_safe_base64_encode(object) 如object為”panda.png”, 編碼過后的內容就是 “cGFuZGEucG5n”。 | 是 |
| bucket | 水印圖片所在的bucket,必須是和要加圖片水印的object是同一個用戶,否則返回403 Access Denied。 | 是 |
水印預處理
水印圖片支持預處理,目前支持的處理:按比例縮略(p),指定寬度縮略(w,h) 這幾個參數,其他參數暫未支持。
| 參數 | 描述 | 取值 |
|---|---|---|
| p | 對當前水印圖片進行按比例縮略或放大。 | 整數形式,取值是[1, 1000]。例如10p表示基于水印圖片的10%進行處理。 |
| P | 水印圖片按主圖的比例進行處理。 | 整數形式,取值是[1, 100]。 如果設置了10P,主圖是100*100, 那么水印圖片此時的大小就是10*10, 當主圖變成了200*200,那么水印圖片就變成了20*20。 |
| w | 按寬度縮略。指定水印圖的寬度,高度按比較縮略。 | 整數形式,取值是[1, 4096]。單位是像素(px)。 |
| h | 按高度縮略。指定水印圖的高度, 寬度按比較縮略。 | 整數形式,取值是[1, 4096]。單位是像素(px)。 |
如果要指定對水印圖片進行預處理,處理參數帶在水印object之后,以@oosImage|連接。
如對panda.png 進行放大2倍: Object = url_safe_base64_encode(“panda.png@oosImage|200p”)。
所以盡量不要讓原object名字是帶@。不然可能會導致訪問異常。如不要讓原始object名字是”panda@123.png”。
示例
原圖example.jpg 加上水印圖片是panda.png,右下角,水平邊距為10, 垂直邊距為10, 透明度為90://oos-cn.ctyunapi.cn/docs/example.jpg@oosImage|watermark=1&bucket=docs&object=cGFuZGEucG5n&t=90&p=9&x=10&y=10
原圖example.jpg 加上水印圖片是panda.png。按寬度縮略成100, 水印大小是主圖的40%, 此時水印圖的是40*40://oos-cn.ctyunapi.cn/docs/example.jpg@oosImage|100w.jpg|watermark=1&bucket=docs&object=cGFuZGEucG5nQG9vc0ltYWdlfDQwUA==&t=90&p=9&x=10&y=10
原圖example.jpg 加上水印圖片是panda.png。按寬度縮略成200,水印大小是主圖的40%, 此時水印圖是80*80://oos-cn.ctyunapi.cn/docs/example.jpg@oosImage|200w.jpg|watermark=1&bucket=docs&object=cGFuZGEucG5nQG9vc0ltYWdlfDQwUA==&t=90&p=9&x=10&y=10
文字水印
文字水印就是在原圖的基礎上加上一段文字內容作為水印。
訪問類型
@oosImage|watermark=2&text=<encodeText>&type=<encodeType>&size=<size>&color=<encode colr>&t=<t>&p=<p>&x=<x>&voffset=<offset>&y=<y>其中watermark與object兩個參數為必填項。
參數
| 名稱 | 描述 | 是否必須 |
|---|---|---|
| text | 文字水印的文字內容 :EncodefontText = url_safe_base64_encode (fontText) 。最大長度為64個字符(即支持漢字最多20個左右)。 | 是 |
| type | 文字水印的文字類型(必須編碼)。 必須是Base64編碼 EncodeFontType = url_safe_base64_encode (fontType)。 取值范圍:“文字類型編碼對應表”。默認值:wqy-zenhei ( 編碼后的值:d3F5LXplbmhlaQ)。 | 否 |
| color | 文字水印文字的顏色(必須編碼)。 參數必須是Base64位編碼 EncodeFontColor = url_safe_base64_encode(fontColor) 。 參數的構成必須是:# + 六個十六進制數。如:#000000表示黑色。 #是表示前綴,000000每兩位構成RGB顏色, #FFFFFF表示的是白色默認值:#000000黑色 base64編碼后值:IzAwMDAwMA | 否 |
| size | 文字水印文字大小。 整數形式,取值是(0,1000] 。默認值是40。單位像素(px) | 否 |
| s | 文字水印的陰影透明度。整數形式, 取值是(0,100]。 | 否 |
表:文字類型編碼對應表
| 參數值 | 中文意思 | 編碼后的值 |
|---|---|---|
| wqy-zenhei | 文泉驛正黑 | d3F5LXplbmhlaQ |
| wqy-microhei | 文泉微米黑 | d3F5LW1pY3JvaGVp |
| fangzhengshusong | 方正書宋 | ZmFuZ3poZW5nc2h1c29uZw |
| fangzhengkaiti | 方正楷體 | ZmFuZ3poZW5na2FpdGk |
| fangzhengheiti | 方正黑體 | ZmFuZ3poZW5naGVpdGk |
| fangzhengfangsong | 方正仿宋 | ZmFuZ3poZW5nZmFuZ3Nvbmc |
| droidsansfallback | DroidSansFallback | ZHJvaWRzYW5zZmFsbGJhY2s |
示例
字體是文泉驛正黑,字體大小是40, 顏色是白色(#FFFFFF), 文字陰影是50, 文字水印內容是“Hello 圖片服務!”, 水印位置是右中,水平邊距是10, 中線垂直偏移是20://oos-cn.ctyunapi.cn/docs/example.jpg@oosImage|watermark=2&type=d3F5LXplbmhlaQ&size=40&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ&color=I0ZGRkZGRg&s=50&t=90&p=6&x=10&voffset=20。
最簡單水印:文字內容是“Hello 圖片服務!”://oos-cn.ctyunapi.cn/docs/example.jpg@oosImage|watermark=2&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ。
圖文混合水印
圖文混合水印就是文字,圖片并列一起做為水印打在圖片上。
訪問類型
@oosImage|watermark=3&bucket=bucketName&object=<encodeObject>&text=<encodeText>&type=<encodeType>&size=<size>&color=<encodecolor>&order=<order>&align=<align>&interval=<interval>&t=<t>&p=<p>&x=<x>&y=<y>其中watermark與object兩個參數為必填項。
參數
文圖混合水印,相當于文字水印跟圖片水印的混合,并行在一行輸出。所以文圖混合水印支持文字水印和圖片水印的參數。其中object, text是必選參數。
| 名稱 | 描述 | 是否必須 |
|---|---|---|
| order | 文字,圖片水印前后順序。 取值:
默認值是0。 | 否 |
| align | 取值:
默認值是0。 | 否 |
| interval | 文字和圖片間的間距。 整數形式,取值是[0, 1000],單位是px。 | 否 |
示例
單純文字水印,文字內容是“Hello 圖片服務!”,陰影是50, 位置在右下角,水平邊距和垂直邊距都是10, 水印透明是90://oos-cn.ctyunapi.cn/docs/example.jpg@oosImage|watermark=2&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ&s=50&t=90&p=9&x=10&y=10
單純圖片水印,圖片object 是panda.png,位置在右下角,水平邊距和垂直邊距都是10, 水印透明是90://oos-cn.ctyunapi.cn/docs/example.jpg@oosImage|watermark=1&bucket=docs&object=cGFuZGEucG5n&t=90&p=9&x=10&y=10
文圖混合水印,文字內容是“Hello 圖片服務!”, 陰影是50, 位置在右下角,圖片object 是panda.png。水平邊距和垂直邊距都是10, 水印透明是:90,排版方式是圖片前,對齊方式是中對齊,間距是10://oos-cn.ctyunapi.cn/docs/example.jpg@oosImage|watermark=3&bucket=docs&object=cGFuZGEucG5n&type=d3F5LXplbmhlaQ&size=40&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ&color=I0ZGRkZGRg&s=50&order=0&align=1&interval=10&t=90&p=9&x=10&y=10