注意
- 動圖合成接口目前僅適用於存儲在七牛的圖片
- 接口可支持處理的原圖片格式有 jpeg 和 png
- 支持的最大幀數為 20
- 支持的最大圖片尺寸為 1080*1080,必須是多張寬高尺寸相同的圖片,文檔里沒說明
- 文件名,拼湊的 key 值必須經過 Base64 編碼,多個圖片文件拼湊時,不斷拼湊
/key/<文件名base64Encode >
即可
操作步驟
實現效果,將3張圖片合成1張 gif 動圖。
- 素材,准備3張同寬高尺寸的圖 A/B/C
- 對 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
- D:
- 拼湊 url,具體格式和拼湊結果
- 格式:
A?animate/duration/20/merge/key/D/key/E
- 結果 url:https://i.iamlj.com/png/width300/19-01-21-e43bb0d5e2f8f0bf48a36f20c1e5a779.png?animate/duration/20/merge/key/cG5nL3dpZHRoMzAwLzE5LTAxLTIxLTFmMTEzM2NjNTA1ZjY3ZjQ4YWMzMmEzMDBjNzAxOGMxLnBuZw/key/cG5nL3dpZHRoMzAwLzE5LTAxLTIxLWQzYTI3NmQxZWI1MTQ1ZTc4YzkzYmQ5YzczNjA1OGRhLnBuZw
- 格式:
圖片裁剪
可以使用七牛的圖片裁剪功能,將多張圖片裁剪為相同尺寸,如將圖片裁剪為寬高為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