七牛合成动图

Posted shliujing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了七牛合成动图相关的知识,希望对你有一定的参考价值。

注意

  1. 动图合成接口目前仅适用于存储在七牛的图片。
  2. 接口可支持处理的原图片格式有 jpeg 和 png。
  3. 支持的最大帧数为 20。
  4. 支持的最大图片尺寸为 1080*1080

准备

  1. 素材
  2. 图2文件名 base64 编码
    • png/width300/19-01-21-1f1133cc505f67f48ac32a300c7018c1.png -> cG5nL3dpZHRoMzAwLzE5LTAxLTIxLTFmMTEzM2NjNTA1ZjY3ZjQ4YWMzMmEzMDBjNzAxOGMxLnBuZw==
  3. 拼凑 url

图片裁剪

可以使用七牛的图片裁剪功能,将多张图片裁剪为相同尺寸,如将图片裁剪为宽高为300的图片,使用?imageView2/1/w/300/h/300/format/jpg即可。

https://i.iamlj.com/19-01-21-e43bb0d5e2f8f0bf48a36f20c1e5a779.png
->
https://i.iamlj.com/19-01-21-e43bb0d5e2f8f0bf48a36f20c1e5a779.png?imageView2/1/w/300/h/300/format/jpg

另存为

裁剪图片和结果url图片,都可以使用处理结果另存功能,保存为新的文件名。

如下 Java 代码,是将存储空间中的文件19-01-21-e43bb0d5e2f8f0bf48a36f20c1e5a779.png 裁剪为宽高300的 jpg 图片保存为 png/width300/19-01-21-e43bb0d5e2f8f0bf48a36f20c1e5a779.png新文件。实现可通过 https://i.iamlj.com/png/width300/19-01-21-e43bb0d5e2f8f0bf48a36f20c1e5a779.png 访问的效果。

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

    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-01-21-1f1133cc505f67f48ac32a300c7018c1.png";
        //上传后的文件名
        String newKey = "png/width300/19-01-21-1f1133cc505f67f48ac32a300c7018c1.png";

        //设置转码操作参数
        String fops = "imageView2/1/w/300/h/300/format/jpg";
        //设置转码的队列
        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);
    }

}

其他

  1. 必须是多张宽高尺寸相同的图片,文档里没说明

参考文档

合成动图



以上是关于七牛合成动图的主要内容,如果未能解决你的问题,请参考以下文章

Pxer使用FFmpeg合成动图

python 动图gif 合成

python 动图gif 合成

有没有办法将2个非常相似的代码片段组合成一个函数并重复?

如何上传图片到七牛云

怎么把视频做成动图