七牛合成動圖


主要看操作步驟圖片裁剪另存為為附屬項,不需要可以不看。

注意

  1. 動圖合成接口目前僅適用於存儲在七牛的圖片
  2. 接口可支持處理的原圖片格式有 jpeg 和 png
  3. 支持的最大幀數為 20
  4. 支持的最大圖片尺寸為 1080*1080,必須是多張寬高尺寸相同的圖片,文檔里沒說明
  5. 文件名,拼湊的 key 值必須經過 Base64 編碼,多個圖片文件拼湊時,不斷拼湊/key/<文件名base64Encode >即可

操作步驟

實現效果,將3張圖片合成1張 gif 動圖。

  1. 素材,准備3張同寬高尺寸的圖 A/B/C
  2. 對 B 和 C 文件名進行 base64 編碼,編碼后的值為 D 和 E
    • D: png/width300/19-01-21-1f1133cc505f67f48ac32a300c7018c1.png base64 編碼后: cG5nL3dpZHRoMzAwLzE5LTAxLTIxLTFmMTEzM2NjNTA1ZjY3ZjQ4YWMzMmEzMDBjNzAxOGMxLnBuZw==
    • E: png/width300/19-01-21-d3a276d1eb5145e78c93bd9c736058da.png base64 編碼后: cG5nL3dpZHRoMzAwLzE5LTAxLTIxLWQzYTI3NmQxZWI1MTQ1ZTc4YzkzYmQ5YzczNjA1OGRhLnBuZw==
    • base64編碼在線加密解密: http://tool.oschina.net/encrypt?type=3
  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);
    }

}

gif 結果圖片另存為

同理利用另存為功能將文件

png/width300/19-01-21-e43bb0d5e2f8f0bf48a36f20c1e5a779.png?animate/duration/20/merge/key/cG5nL3dpZHRoMzAwLzE5LTAxLTIxLTFmMTEzM2NjNTA1ZjY3ZjQ4YWMzMmEzMDBjNzAxOGMxLnBuZw==/key/cG5nL3dpZHRoMzAwLzE5LTAxLTIxLWQzYTI3NmQxZWI1MTQ1ZTc4YzkzYmQ5YzczNjA1OGRhLnBuZw==

另存為

gif/width300/19-01-21-gif-result.png

參考文檔

合成動圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM