图片水印处理-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. }

备注

  • 更多返回错误代码请看首页的错误代码描述