閱讀858 返回首頁    go 阿裏雲


圖片水印__圖片處理指南_對象存儲 OSS-阿裏雲

水印操作可以在圖片上設置另外一張圖片或者文字做為水印。

參數

操作名稱:watermark

基礎參數

名稱 描述 參數類型
t 參數意義:透明度, 如果是圖片水印,就是讓圖片變得透明,如果是文字水印,就是讓水印變透明。
默認值:100, 表示 100%(不透明) 取值範圍: [0-100]
可選參數
g 參數意義:位置,水印打在圖的位置,詳情參考下方區域數值對應圖。
取值範圍:[nw,north,ne,west,center,east,ne,south]
可選參數
x 參數意義:水平邊距, 就是距離圖片邊緣的水平距離, 這個參數隻有當水印位置是左上,左中,左下, 右上,右中,右下才有意義
默認值:10
取值範圍:[0 – 4096]
單位:像素(px)
可選參數
y 參數意義:垂直邊距, 就是距離圖片邊緣的垂直距離, 這個參數隻有當水印位置是左上,中上, 右上,左下,中下,右下才有意義
默認值:10
取值範圍:[0 – 4096]
單位:像素(px)
可選參數
rotate 參數意義:旋轉角度,圖片按順時針旋轉的角度
取值範圍:[0, 360]
可選參數
fill 參數意義:進行水印鋪滿的效果;
取值範圍:[0,1],1表示鋪滿,0表示效果無效
可選參數
voffset 參數意義: 中線垂直偏移,當水印位置在左中,中部,右中時,可以指定水印位置根據中線往上或者往下偏移。
默認值:0
取值範圍:[-1000, 1000]
單位:像素(px)
可選參數

注意事項

  • 水平邊距、垂直邊距、中線垂直偏移不僅可以調節水印在圖片中的位置,而且當圖片存在多重水印時,也可以調節兩張水印在圖中的布局。
  • 用到的URL安全的Base64位編碼可以參考文檔下方的解釋。
  • 區域數值對應圖

區域數值對應表

圖片水印參數

名稱 描述 參數類型
image 參數意義: 水印圖片的object名字(必須編碼)
注意:內容必須是URL安全base64編碼 encodedObject = url_safe_base64_encode(object) 如object為”panda.png”, 編碼過後的內容為”cGFuZGEucG5n”
必選參數

水印圖片預處理

用戶在打水印時,可以對水印圖片進行預處理,支持的預處理操作有:圖片縮放,圖片裁剪(不支持內切圓),圖片旋轉(具體內容請直接查看文檔相關章節)。在“resize”操作下還額外支持一個參數:P(大寫P),表示水印圖片按主圖的比例進行處理,取值範圍為[1, 100],表示百分比

預處理示例

設置了P_10, 當主圖是100x100, 水印圖片大小就為10x10, 當主圖變成了200x200,水印圖片大小就為20x20。如果生成的圖片大小不一樣,而使用相同的水印處理參數,就會導致一些小圖,水印圖片過大。或者一些大圖,水印圖片過小。增加P參數,就可以解決這個問題。采用P參數,IMG會根據主圖的大小來動態調整水印圖片的大小。

對panda.png按30%縮放。 那麼水印文件是:panda.png?x-oss-process=image/resize,P_30 (經過URL安全base64編碼後是:cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA)

如果水印操作是:watermark=1&object=cGFuZGEucG5nQDMwUA&t=90&p=9&x=10&y=10 (右下角打水印)原圖按寬度是400,需要縮略,再打上述水印的示例:

  1. https://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_400/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA,t_90,g_se,x_10,y_10

如果原圖按寬度300縮略,再打上上述水印的示例:

https://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA,t_90,g_se,x_10,y_10

文字水印參數

名稱 描述 參數類型
text 參數意義:表示文字水印的文字內容(必須編碼)
注意:必須是URL安全base64編碼 encodeText = url_safe_base64_encode(fontText) 最大長度為64個字符(即支持漢字最多20個左右)
必選參數
type 參數意義:表示文字水印的文字類型(必須編碼)
注意:必須是URL安全base64編碼 encodeText = url_safe_base64_encode(fontType)
取值範圍:見下表(文字類型編碼對應表)
默認值:wqy-zenhei ( 編碼後的值:d3F5LXplbmhlaQ)
可選參數
color 參數意義:文字水印文字的顏色(必須編碼)
注意:參數必須是URL安全base64編碼 EncodeFontColor = url_safe_base64_encode(fontColor) 參數的構成必須是:# + 六個十六進製數 如:#000000表示黑色。 #是表示前綴,000000每兩位構成RGB顏色, #FFFFFF表示的是白色
默認值:#000000黑色 base64編碼後值:IzAwMDAwMA
可選參數
size 參數意義:文字水印文字大小(px)
取值範圍:(0,1000]
默認值:40
可選參數
shadow 參數意義:文字水印的陰影透明度
取值範圍:(0,100]
可選參數
rotate 參數意義:文字順時針旋轉角度
取值範圍:[0,360]
可選參數

文字類型編碼對應表

參數值 中文意思 URL安全base64編碼後的值 備注
wqy-zenhei 文泉驛正黑 d3F5LXplbmhlaQ== 根據RFC,可省略填充符=變為d3F5LXplbmhlaQ
wqy-microhei 文泉微米黑 d3F5LW1pY3JvaGVp
fangzhengshusong 方正書宋 ZmFuZ3poZW5nc2h1c29uZw== 根據RFC,可省略填充符=變為ZmFuZ3poZW5nc2h1c29uZw
fangzhengkaiti 方正楷體 ZmFuZ3poZW5na2FpdGk= 根據RFC,可省略填充符=變為ZmFuZ3poZW5na2FpdGk
fangzhengheiti 方正黑體 ZmFuZ3poZW5naGVpdGk= 根據RFC,可省略填充符=變為ZmFuZ3poZW5naGVpdGk
fangzhengfangsong 方正仿宋 ZmFuZ3poZW5nZmFuZ3Nvbmc= 根據RFC,可省略填充符=變為ZmFuZ3poZW5nZmFuZ3Nvbmc
droidsansfallback DroidSansFallback ZHJvaWRzYW5zZmFsbGJhY2s= 根據RFC,可省略填充符=變為ZHJvaWRzYW5zZmFsbGJhY2s

文圖混合

名稱 描述 參數類型
order 參數意義: 文字,圖片水印前後順序
取值範圍:[0, 1] order = 0 圖片在前(默認值); order = 1 文字在前。
可選參數
align 參數意義:文字、圖片對齊方式
取值範圍:[0, 1, 2] align = 0 上對齊(默認值) align = 1 中對齊 align = 2 下對齊
可選參數
interval 參數意義:文字和圖片間的間距 取值範圍: [0, 1000] 可選參數

URL安全的Base64位編碼

在圖片處理服務裏會有很多參數需要變成Base64位編碼,參考RFC4648。注意這裏的URL 安全Base64位編碼隻是用在水印操作某些特定參數(文字水印的文字內容,文字顏色,文字字體及圖片水印的水印object)裏,不要將其用來簽名字符串(Signature)的內容。編碼的格式是:

  • 先將內容編碼成Base64結果;
  • 將結果中的加號”+”替換成中劃線“-“;
  • 將結果中的斜杠”/”替換成下劃線”_”;
  • 將結果中尾部的“=”號全部保留;

以Python為例子

  1. import base64
  2. input='wqy-microhei'
  3. print(base64.urlsafe_b64encode(input))

示例

  • 下麵URL的含義,是example.jpg加上水印文件是 :panda.png (panda.png 經過URL安全base64編碼後是:cGFuZGEucG5n)

https://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300/auto-orient,1/quality,q_90/format,jpg/watermark,image_cGFuZGEucG5n,t_90,g_se,x_10,y_10

  • 對panda.png按寬度是50縮放。 那麼水印文件是:panda.png?x-oss-process=image/resize,w_50 (經過URL安全base64編碼後是:cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLHdfNTA=)

https://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300/auto-orient,1/quality,q_90/format,jpg/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLHdfNTA=,t_90,g_se,x_10,y_10

  • 最簡單水印:文字內容是:Hello, 圖片服務

https://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300/watermark,type_d3F5LXplbmhlaQ,size_30,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ

  • 字體是文泉驛正黑,字體大小是40, 顏色是白色(#FFFFFF), 文字陰影是50, 文字水印內容是:Hello, 圖片服務!, 水印位置是:右下,水平邊距是:10, 中線垂直偏移是:10

https://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300/watermark,type_d3F5LXplbmhlaQ,size_30,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ,color_FFFFFF,shadow_50,t_100,g_se,x_10,y_10

  • 文圖混合水印,文字內容是:Hello, 圖片服務! 陰影是50, 位置在右下角,圖片object 是panda.png。 水平邊距和垂直邊距都是10, 水印透明是100, 排版方式是圖片前, 對齊方式是下對齊,間距是10

https://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300/auto-orient,1/quality,q_90/format,jpg/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMjU,type_d3F5LXplbmhlaQ,size_30,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ,color_FFFFFF,shadow_50,order_0,align_2,interval_10,t_100,g_se,x_10,y_10

最後更新:2016-11-23 16:04:20

  上一篇:go 質量變換__格式轉換_圖片處理指南_對象存儲 OSS-阿裏雲
  下一篇:go 獲取圖片主色調__獲取圖片信息_圖片處理指南_對象存儲 OSS-阿裏雲