七牛图片盲水印

注意

  1. 暂时不支持从 dora 数据处理直接调该接口,只支持从 kodo 存储调用。即 cdn 域名不可开通图片瘦身

调用形式

资源

http://i.iamlj.com/19-08-12/123936.png

处理参数

watermark/6/method/encode/text/aGVsbG8gcWluaXU=

新图

http://i.iamlj.com/19-08-12/123936-watermark-qiniu.png

请求查询

http://api.qiniu.com/status/get/prefop?id=z0.0A22344225B94C93025D536035EC1E3C

加密结果图

https://i.iamlj.com/19-08-12/123936-watermark-qiniu.png

加密结果图对比原图,得出加密参数图

http://7xlv47.com0.z0.glb.clouddn.com/upload.jpg

Pfop 请求生成新图

Java 编码代码参考

package me.lj.qiniu.dora;

import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.processing.OperationManager;
import com.qiniu.storage.Configuration;
import com.qiniu.util.Auth;
import com.qiniu.util.UrlSafeBase64;
import me.lj.qiniu.config.Config;

import java.io.IOException;


/**
 * 图片另存为
 */
public class PfopsImageWatermark {

    public static void main(String args[]) throws IOException {
        //设置好账号的ACCESS_KEY和SECRET_KEY
        String ACCESS_KEY = Config.ACCESS_KEY;
        String SECRET_KEY = Config.SECRET_KEY;
        //资源所在空间
        String bucketname = "image";
        String key = "19-08-12/123936.png";
        //上传后的文件名
        String newKey = "19-08-12/123936-watermark-qiniu.png";

        //设置转码操作参数
        String fops = "watermark/6/method/encode/text/cWluaXU=";
        //设置转码的队列
        String pipeline = "12349";

        //可以对转码后的文件进行使用saveas参数自定义命 名,当然也可以不指定文件会默认命名并保存在当前空间。
        String urlbase64 = UrlSafeBase64.encodeToString(bucketname + ":" + newKey);
        String pfops = fops + "|saveas/" + urlbase64;

        //密钥配置
        Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);

        //第二种方式: 自动识别要上传的空间(bucket)的存储区域是华东、华北、华南。
        Zone z = Zone.autoZone();
        Configuration c = new Configuration(z);

        OperationManager operationManager = new OperationManager(auth, c);

        String id = null;
        try {
            id = operationManager.pfop(bucketname, key, pfops, pipeline, true);
        } catch (QiniuException e) {
            e.printStackTrace();
        }

        System.out.println(id);
    }

}

Java 解码代码参考


/**
 * 图片另存为
 */
public class PfopsImageWatermarkDecode {
    public static void main(String args[]) throws IOException {
        //设置好账号的ACCESS_KEY和SECRET_KEY
        String ACCESS_KEY = Config.ACCESS_KEY;
        String SECRET_KEY = Config.SECRET_KEY;
        //资源所在空间
        String bucketname = "image";
        String originkey = "19-08-12/123936.png";
        String key = "19-08-12/123936-watermark-qiniu.png";
        //上传后的文件名
        String newKey = "19-08-12/123936-watermark-compare.png";

        //设置转码操作参数
        String fops = "watermark/6/method/decode/orignal/"+UrlSafeBase64.encodeToString(originkey);;
        //设置转码的队列
        String pipeline = "12349";

        //可以对转码后的文件进行使用saveas参数自定义命 名,当然也可以不指定文件会默认命名并保存在当前空间。
        String urlbase64 = UrlSafeBase64.encodeToString(bucketname + ":" + newKey);
        String pfops = fops + "|saveas/" + urlbase64;

        //密钥配置
        Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);

        //第二种方式: 自动识别要上传的空间(bucket)的存储区域是华东、华北、华南。
        Zone z = Zone.autoZone();
        Configuration c = new Configuration(z);

        OperationManager operationManager = new OperationManager(auth, c);

        String id = null;
        try {
            id = operationManager.pfop(bucketname, key, pfops, pipeline, true);
        } catch (QiniuException e) {
            e.printStackTrace();
        }

        System.out.println(id);
    }

}

解码结果图

参考

盲水印处理

posted @ 2019-08-14 18:09  刘靖  阅读(577)  评论(0编辑  收藏  举报