979
阿裏雲
圖片處理__安卓應用示例_最佳實踐_對象存儲 OSS-阿裏雲
在OssDemo中展示了上傳一張圖片後,各種不同的處理。和下載不同的地方是:
- 使用的是圖片處理的Endpoint。
- 在Object後麵帶了一些處理參數。
圖片加水印
調用邏輯
- 上傳一張圖片到OSS,在默認的情況下bucket是sdk-demo,object是test,OSS的Endpoint是
oss-cn-hangzhou.aliyuncs.com
。 - 根據不同的圖片處理方式,在test後麵加不同的處理參數,以展示不同的顯示效果。
- 選擇後OssDemo在獲取sts_server的地址後,發送請求。
- sts_server返回AccessKeyId、AccessKeySecret、SecurityToken、Expiration。
- OssDemo獲取這些信息後,調用SDK,構建OssClient,進行下載操作。呈現的效果就是圖片處理的效果。不過圖片服務的Endpoint是
img-cn-hangzhou.aliyuncs.com
。
具體代碼
- 點擊更多後,到了圖片服務處理圖片後的頁麵。
將之前上傳的圖片,在右下角加水印,並且大小為100,獲取這樣的操作命令。
函數實現片段:在ImageService類中
提供了這樣的一個方法,主要是在原來的object後增加相應的功能需要的參數
//給圖片打上文字水印,除了大小字體之外其他都是默認值,有需要更改的可以參考圖片服務文檔自行調整
public String textWatermark(String object, String text, int size) {
String base64Text = Base64.encodeToString(text.getBytes(), Base64.URL_SAFE | Base64.NO_WRAP);
String queryString = "@watermark=2&type=" + font + "&text=" + base64Text + "&size=" + String.valueOf(size);
Log.d("TextWatermark", object);
Log.d("Text", text);
Log.d("QuerySyring", queryString);
return (object + queryString);
}
調用SDK的下載接口,進行圖片處理。
函數實現片段:getImage(imageService.textWatermark(objectName, "OSS測試", 100), 0, "右下角文字水印,大小100");
public void getImage(final String object, final Integer index, final String method) {
GetObjectRequest get = new GetObjectRequest(bucket, object);
Log.d("Object", object);
OSSAsyncTask task = oss.asyncGetObejct(get, new UICallback<GetObjectRequest, GetObjectResult>(uiDispatcher) {
@Override
public void onSuccess(GetObjectRequest request, GetObjectResult result) {
// 請求成功
InputStream inputStream = result.getObjectContent();
Log.d("GetImage", object);
Log.d("Index", String.valueOf(index));
try {
//防止超過顯示的最大限製
adapter.getImgMap().put(index, new ImageDisplayer(1000, 1000).autoResizeFromStream(inputStream));
adapter.getTextMap().put(index, method + "n" + object);
//需要根據對應的View大小來自適應縮放
addCallback(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
}, null);
}
catch (IOException e) {
e.printStackTrace();
}
super.onSuccess(request,result);
}
這裏省略了對下載結果失敗的處理,可以參考源碼中的onFailure的處理。
圖片縮放、裁剪、旋轉
和加水印的過程類似,在ImageService中增加獲取處理命令的函數,以”object + 處理參數“的形式返回,最後調用SDK的Get Object接口來處理。
//縮放
getImage(imageService.resize(objectName, 100, 100), 1, "縮放到100*100");
//裁剪
getImage(imageService.crop(objectName, 100, 100, 9), 2, "右下角裁剪100*100");
//旋轉
getImage(imageService.rotate(objectName, 90), 3, "旋轉90度");
最後更新:2016-11-23 16:04:10
上一篇:
使用已經搭建好的應用服務器__安卓應用示例_最佳實踐_對象存儲 OSS-阿裏雲
下一篇:
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
監控項介紹__性能監控_用戶指南(Linux)_數據管理-阿裏雲
官網購買__購買渠道_購買指南_雲服務器 ECS-阿裏雲
查詢域名配置__配置操作接口_API 手冊_CDN-阿裏雲
移出ECS實例__觸發任務_用戶指南_彈性伸縮-阿裏雲
新建虛擬邊界路由器__高速通道相關接口_API 參考_雲服務器 ECS-阿裏雲
體育賽事_阿裏雲幫助中心-阿裏雲,領先的雲計算服務提供商
解除API與多個APP的授權__授權相關接口_API_API 網關-阿裏雲
修改隻讀賬戶密碼__數據庫管理_開放API_分布式關係型數據庫 DRDS-阿裏雲
域名MX記錄解析設置方法__郵箱解析_產品使用問題_雲解析-阿裏雲
子賬號授權準備__日誌管理使用幫助_控製台使用幫助_消息服務-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲