圖片水印處理-temp

 

/media/watermark

簡要描述:html

  • 用戶註冊接口
    • 應用場景:比較複雜的水印處理,如須要屢次添加水印,或者水印圖片自己也須要處理,若是處理相對簡單,java項目能夠經過dubbo接口ImageProcessService處理水印
    • 請求中若是包含透明背景或者內切圓時,須要使用png格式的背景圖,目前水印生成的圖片格式與背景圖的格式一致,jpg等格式沒法支持透明圖片

請求URL:java

  • http://dev.file.internal.weimob.com/media/watermark

請求方式:json

  • POST

參數: application/jsonruby

參數名 必選 類型 參數類型 說明
accessKey int header 調用身份
waterMarkRequest WaterMarkRequest body 水印處理參數

請求示例markdown

  1. {
  2. //須要加水印的圖片,mediaId或者url都可,同時傳,系統優先mediaId
  3. "url": "http://img06.tooopen.com/3325566.jpg",
  4. "mediaId": 100012L,//mediaId和url只需傳一個
  5. "imageWaterMarks": [//圖片水印參數
  6. {
  7. //水印圖片mediaId或者url都可,同時傳,系統優先mediaId
  8. "url": "http://img3.redocn.com/ngbeijing_3924704.jpg",
  9. "x": 10,//水印圖片在主圖上的起始X座標
  10. "y": 10,//水印圖片在主圖上的起始Y座標
  11. "process":{//水印圖片自己也須要處理
  12. "type":"crop",//處理方式爲crop,裁剪
  13. "x":5,//裁剪的起點X
  14. "y":20, //裁剪的起點Y
  15. "w":200, //裁剪的width
  16. "h":200//裁剪的height
  17. }
  18. }
  19. ],
  20. "textWaterMarks": [//文字水印
  21. {"text": "測試文件",//文字內容
  22. "size": 50,//字體大小
  23. "type":"fangzheng",//字體,可查看文檔查詢支持字體
  24. "fontStyle":1,//默認0,正常文字,1 表示 BOLD 2 ITALIC
  25. //使用絕對定位方式控制文字位置,請參考下面的說明
  26. "x": 280,//文字水印在主圖的起始X
  27. "y": 635//文字水印在主圖的起始Y,
  28. "color":"FFFFFF",//十六進制顏色值
  29. //使用相對定位
  30. "pos":1,
  31. "offsetX":10,//該值是相對pos的值
  32. "offsetY":-5
  33. }
  34. ]
  35. }

offsetX offsetY 說明:這兩個值比較容易讓人疑惑,目前咱們採起的策略是根據相對定位pos來肯定,好比pos=5,說明是圖片正中心,那麼最終獲得的y是圖片中心的y+offsetY,因此請留意這個邊界是否超過圖片app

水印 process 參數說明 process參數可用於最外層主圖或者水印圖片
crop 裁剪oop

  1. "process":{//水印圖片自己也須要處理
  2. "type":"crop",//處理方式爲crop,裁剪
  3. "x":5,//裁剪的起點X
  4. "y":20, //裁剪的起點Y
  5. "w":200, //裁剪的width
  6. "h":200//裁剪的height
  7. }

scale 縮略 將原圖等比縮放 不支持放大測試

  1. "process":{//水印圖片自己也須要處理
  2. "type":"scale",
  3. "s":80//縮略的百分比
  4. }

resize 更改尺寸,強制將圖片處理到固定尺寸字體

  1. "process":{//水印圖片自己也須要處理
  2. "type":"resize",
  3. "keepRatio":false,//是否保持原圖比例
  4. "w":80,//處理到固定寬
  5. "h":100//處理到固定高
  6. }
  7. 默認系統會保持原圖比例,好比原圖大小爲750*1334 resize參數爲100*100
  8. 最終的結果並非一張100*100的圖,會優先考慮長邊,將長邊1334縮放到100,而後750按照這個比例縮放,最終生成的圖爲56*100
  9. 若是但願強制生成100*100的圖,能夠設置"keepRatio":false,此時會獲得100*100的圖,可是會拉伸變形,請根據實際業務選擇處理策略

circle 內切圓,內切圓會將圖片進行裁剪,只保留圓的部分url

  1. "process":{//水印圖片自己也須要處理
  2. "type":"circle",
  3. "x":80//圓點座標
  4. "y":100//,
  5. "radius":10//圓的半徑
  6. }

文字水印說明: 文字水印支持兩種定位方式,絕對定位,以下 使用 x y的座標值來定位,例如 左上角的座標爲 (0,0)

  1. "textWaterMarks": [//文字水印
  2. {"text": "測試文件",//文字內容
  3. "size": 50,//字體大小
  4. "type":"fangzhengkaiti",//字體
  5. //使用絕對定位方式控制文字位置
  6. "x": 280,//文字水印在主圖的起始X
  7. "y": 635//文字水印在主圖的起始Y,
  8. }
  9. ]

文字水印說明: 文字水印支持兩種定位方式,相對定位,以下 使用 pos來定位

  1. "textWaterMarks": [//文字水印
  2. {"text": "測試文件",//文字內容
  3. "size": 50,//字體大小
  4. "type":"fangzhengkaiti",//字體
  5. //使用相對定位方式
  6. "pos":1,//表示文字水印放置在如圖 TOP_LEFT位置
  7. "offsetX":10, x軸的偏移量,選填
  8. "offsetY":-5 y軸的偏移量,選填
  9. }
  10. ]

返回示例

  1. {
  2. "code": 0,//錯誤碼
  3. "msg": "success",//消息提示
  4. "data": {
  5. "mediaId": 20134219,//文件id
  6. //文件的訪問連接
  7. "url": "http://dev.static.picserver.mengdian.com/md/b2a6bdff2d76cc6e478d19106e25a45e_901.jpg",
  8. "width": 720,//圖片的寬
  9. "height": 720,//圖片的高
  10. "fileSize": 52563//圖片的文件大小
  11. }
  12. }

備註

  • 更多返回錯誤代碼請看首頁的錯誤代碼描述
相關文章
相關標籤/搜索