开发者社区> 问答> 正文

关于上传图片水印和存储到oss的问题

1、java开发中,上传文件的时候,加过水印了,如何上传到oss
2、我直接上传到OSS的图片,是不是可以不用处理,在OSS上面配置,他会自动添加水印

展开
收起
素寒 2018-09-18 09:49:33 4714 0
2 条回答
写回答
取消 提交回答
  • 郑州云淘科技有限公司 www.yuntaokeji.com QQ号码78315851
    您可以参考https://help.aliyun.com/document_detail/44957.html?spm=5176.8961142.0.0.2f503a301zEi0P
    解决您的问题
    2018-09-18 10:14:17
    赞同 展开评论 打赏
  • 互联网小站长、java程序员、运营爱好者,关心开源与喜欢的一切,喜欢总结写攻略,对产品设计有点兴趣......
    你好,可以参考如下文档解决,望采纳。

    对象存储 OSS-图片处理指南-图片水印

    水印操作可以在图片上设置另外一张图片或者文字做为水印。

    参数

    操作名称:watermark

    基础参数
    名称
    描述
    参数类型
    t

    参数意义:透明度, 如果是图片水印,就是让图片变得透明,如果是文字水印,就是让水印变透明。

    默认值:100, 表示 100%(不透明) 取值范围: [0-100]

    可选参数 g

    参数意义:位置,水印打在图的位置,详情参考下方区域数值对应图。

    取值范围:[nw,north,ne,west,center,east,sw,south,se]

    可选参数 x

    参数意义:水平边距, 就是距离图片边缘的水平距离, 这个参数只有当水印位置是左上,左中,左下, 右上,右中,右下才有意义。

    默认值:10

    取值范围:[0 – 4096]

    单位:像素(px)

    可选参数 y 参数意义:垂直边距, 就是距离图片边缘的垂直距离, 这个参数只有当水印位置是左上,中上, 右上,左下,中下,右下才有意义 默认值:10 取值范围:[0 – 4096] 单位:像素(px) 可选参数 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,需要缩略,再打上述水印的示例:

    http://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缩略,再打上上述水印的示例:

    http://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

    参数意义:文字水印文字的颜色

    参数的构成必须是:六个十六进制数,如:000000表示黑色。 000000每两位构成RGB颜色, FFFFFF表示的是白色

    默认值:000000黑色

    可选参数 size

    参数意义:文字水印文字大小(px)

    取值范围:(0,1000]

    默认值:40

    可选参数 shadow

    参数意义:文字水印的阴影透明度

    取值范围:(0,100]

    可选参数 rotate

    参数意义:文字顺时针旋转角度

    取值范围:[0,360]

    可选参数 fill

    参数意义:进行水印铺满的效果

    取值范围:[0,1],1表示铺满,0表示效果无效

    可选参数

    文字类型编码对应表

    参数值
    中文意思
    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为例子

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

    示例

    2018-09-18 10:03:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载