在OssDemo中展示了上传一张图片后,各种不同的处理。和下载不同的地方是:
点击更多后,到了图片服务处理图片后的页面。
将之前上传的图片,在右下角加水印,并且大小为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);
}
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);
}
//缩放
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度");
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。