阿里云云计算ACP实验考试之使用OSS对图片进行基本处理(下)

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 阿里云云计算ACP实验考试之使用OSS对图片进行基本处理(下)

1)在 第37行 ,修改 place 参数的值为 法国卢浮宫(可自定义一个地点或者景点)。完成修改,点击 保存 。此步骤是输入增加水印显示的内容。默认图片增加的水印内容为 世界这么大,我想去看看:xxxxxx 。法国卢浮宫(修改的内容)取代 xxxxx 部分的内容。


20200705213228855.png

请将开发服务器桌面的 code.txt 文件中 //设置水印参数 set watermark parameters 部分的代码,拷贝到 WaterMark.java 对应位置中。该段代码功能为:设置水印字体、大小、文字、颜色、位置、透明度并生成进行水印处理后的网站图片的 URI。

//设置水印参数 set watermark parameters
String watermark = "watermark=2"; // watermark type, 1=pic mark, 2=text mark;
String font_type = "&type=" + BinaryUtil.toBase64String("fangzhengheiti".getBytes());
String size = "&size=" + "30";
String text = "世界那么大, 我想去看看:"+place;
text = "&text=" + BinaryUtil.toBase64String(text.getBytes());
String color = "&color=" + BinaryUtil.toBase64String("#FF0033".getBytes());
String position = "&p=" + "4";
String transparency = "&t=" + "70";
watermark = watermark + font_type + size + text + color + position + transparency;
String uri_watermark = uri +"@"+ watermark;
System.out.println("打水印后图片的URI为: "+ uri_watermark+",请在本地浏览器中访问。 ");

20200705213256982.png


4. 然后,点击顶层功能栏的 运行(第六个按钮),开始运行程序。弹出 Console 的程序运行界面中,若显示如下信息,则完成对网站图片打水印。

打水印后图片的URI为: http://training.jiagouyun.com/世界地图xxxxxxx.jpg@watermark=2&type=ZmFuZ3poZW5naGVpdGk=&size=30&text=5LiW55WM6YKj5LmI5aSnLCDmiJHmg7PljrvnnIvnnIvvvJrms5Xlm73nvZfmta7lrqs=&color=I0ZGMDAzMw==&p=4&t=70,请在本地浏览器中访问。


20200705213325288.png


5. 最后,使用域名访问打水印的网站图片。打开本地浏览器,拷贝并粘贴上一步中 URI 中的内容到 网址输入栏 回车,读取 OSS 中存储处理后的图片。即在原有一张地球仪的图片上,添加红色的水印文字 世界这么大, 我想去看看:法国卢浮宫 。



20200705213345757.png


2.5 网站图片多重处理


  1. 本部分实验内容:为了能在一次访问中完成对图像的缩略和打文字水印两种处理,使用管道来实现多种处理任务顺序执行的机制。目前最多支持四级管道。管道的分隔符是 | 。
  2. 首先,通过管道进行图片多重处理:请将开发服务器桌面的 code.txt 文件中 //设置管道参数 set pipe parameters 部分的代码(以下灰色字体)拷贝到 WaterMark.java 对应位置中。该部分代码在一次访问中完成对图像的缩略和打文字水印两种处理。
//设置管道参数 set pipe parameters
String pipe=thumbnail+"|"+watermark;
String uri_pipe=uri+"@"+pipe;
System.out.println("通过管道访问缩略和打水印双重处理后图片的URI为: "+ uri_pipe+",请在本地浏览器中访问。 ");

2020070521350356.png


3. 然后,点击顶层功能栏的 运行(第六个按钮),开始运行程序。弹出 Console 的程序运行界面中,若显示如下信息,则通过管道同时进行图片缩放和水印处理 世界地图 图片文件成功,并生成了相应处理后网站图片的 URI

通过管道访问缩略和打水印双重处理后图片的URI为: http://training.jiagouyun.com/世界地图xxxxxxx.jpg@500w_500h.jpg|watermark=2&type=ZmFuZ3poZW5naGVpdGk=&size=30&text=5LiW55WM6YKj5LmI5aSnLCDmiJHmg7PljrvnnIvnnIvvvJrms5Xlm73nvZfmta7lrqs=&color=I0ZGMDAzMw==&p=4&t=70,本地浏览器中访问。

2020070521354857.png


4. 最后,使用域名访问通过管道多重处理后的网站图片:打开本地浏览器,拷贝并粘贴上一步中 URI 中的内容到 网址输入栏 回车,读取通过管道同时进行缩放和打水印后的图片。即在缩放后的 500*500 的地球仪的图片上,添加红色的水印文字 世界这么大, 我想去看看:法国卢浮宫 。


20200705213608339.png

2.6 下载处理后的图片至本地并查看


本小节主要内容:将上步使用管道对 OSS 的 Bucket 中的原图进行缩放和打水印双重处理后的图片保存到本地。图片服务的下载可以通过浏览器等发送 HTTP GET 请求图片的URL 即可获得图片。


首先,下载处理后的图片至本地。请将开发服务器桌面的 code.txt 文件中 //下载图片 、 //下载文件 部分的代码(以下灰色字体)拷贝到 WaterMark.java 对应位置中。该部分代码将使用管道对 OSS 的 Bucket 中的原图进行缩放,和打水印双重处理后的图片,保存到本地的 C:/LAB_OSS 路径中,并命名为 旅行.jpg 。


注意:%7C 是管道符 | 的转义字符。

//下载图片
String uri_pipe_download=uri+"@"+thumbnail+"%7C"+ watermark;//“%7C”是管道符“|”的转义字符
downloadFile(uri_pipe_download);
System.out.println("Finished...");

20200705214047574.png

以上代码中 downloadFile() 的具体实现见如下的 //下载文件 代码。具体通过以下步骤获得处理后的图片,之后存入本地文件:


1)创建 HttpGet 对象,将要请求的 URL 通过构造方法传入 HttpGet 对象。


2)使用 DefaultHttpClient 类的 execute 方法发送 HTTP GET 请求,并返回 HttpResponse 对象。


3)通过 HttpResponse 接口的 getEntity 方法返回响应信息,并以给定的文件名字 旅游.jpg 存为本地文件。


//下载文件
    private static void downloadFile(String uri)
            throws OSSException, ClientException, ClientProtocolException, IOException {
        //send requests
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpResponse response = httpClient.execute(new HttpGet(uri));
        System.out.println("开始从OSS下载文件...");
        //write to file
        byte[] result = EntityUtils.toByteArray(response.getEntity());
        FileOutputStream fos = new FileOutputStream(new_pic_name);
        fos.write(result);
        fos.flush();
        System.out.println("下载成功");
}

然后,点击顶层功能栏的 运行(第六个按钮),开始运行程序。弹出 Console 的程序运行界面中,若显示如下信息,则完成下载处理后的图片并保存到本地,其名称为 旅行.jpg 。


20200705214120561.png


最后,在本地查看处理后的图片信息。依次点击 Windows 界面左下角的 开始 ,和点击右侧栏的 计算机 ,在打开的 计算机 窗体下,双击 本地磁盘C:,然后,双击并进入 LAB_OSS 的文件目录下。双击 旅行 图片文件。

20200705214142295.png


在打开的 旅行 图片页面中,可以查看到一张添加红色文字水印的地球仪的图片。证明已成功下载通过 OSS 处理后的 世界地图.jpg 图片,并已将其保存到本地 C:\LAB_OSS中,默认命名为 旅行.jpg 。注意其像素已被缩放至 500*500 像素。


20200705214202112.png


第 3 章:课后作业


3.1 如何实现OSS Bucket域名绑定?

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
15天前
|
人工智能 运维 监控
阿里云联合中国信通院等单位发布首个云计算智能化可观测性能力成熟度模型标准
推动行业智能化落地,阿里云联合中国信通院及国内头部云厂商、观测厂商、各行业建设方,历时近 5 个月,共同编制《云计算智能化可观测性能力成熟度模型》,以规范和指导云计算环境下的智能可观测性建设实践,为企业实施云环境下的智能化可观测能力建设提供指导。
|
1月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
2月前
|
存储 人工智能 弹性计算
阿里云何川:云计算,为数据基础设施的建设提速|数据对话
中国信通院工业互联网与物联网研究所特别策划“数据对话”专题,旨在通过专家的深度分析和独特视角,回答社会关切话题,探讨前沿技术和应用趋势。
|
2月前
|
存储 人工智能 弹性计算
阿里云何川:云计算,为数据基础设施的建设提速|数据对话
中国信通院工业互联网与物联网研究所特别策划“数据对话”专题,旨在通过专家的深度分析和独特视角,回答社会关切话题,探讨前沿技术和应用趋势。本期,我们邀请到阿里云弹性计算产品运营与生态合作负责人何川,围绕云计算如何加速数据基础设施建设及其未来发展趋势展开探讨。
|
3月前
|
存储 安全 小程序
什么是云计算,为什么选择阿里云?
阿里云提供的云计算服务让您能以按需、按量的方式获取算力,涵盖计算、存储、网络等多种形态,无需自建数据中心。它具备弹性、敏捷、安全、稳定、高性能和低成本等优势,支持业务快速创新,保障数据安全及业务连续性,提升资源效率,降低IT维护成本,广泛应用于网站、小程序、移动应用等领域。
|
3月前
|
存储 安全 小程序
什么是云计算,为什么选择阿里云?
阿里云提供的云计算服务让您能以按需、按量的方式获取算力,涵盖计算、存储、网络等多种形态,无需自建数据中心。它具备弹性、敏捷、安全、稳定、高性能和低成本等优势,支持业务快速创新,保障数据安全及业务连续性,帮助您专注于核心业务发展。常见应用场景包括网站、小程序、移动应用及大模型问答机器人等。
107 1
|
4月前
|
人工智能 云计算 数据中心
云计算演进问题之阿里云自研CPU倚天710的部署如何解决
云计算演进问题之阿里云自研CPU倚天710的部署如何解决
|
20天前
|
存储 安全 网络安全
云计算与网络安全:技术融合的双刃剑
在数字化浪潮中,云计算如同一股不可阻挡的力量,推动着企业和个人用户步入一个高效、便捷的新时代。然而,随之而来的网络安全问题也如影随形,成为制约云计算发展的阿喀琉斯之踵。本文将探讨云计算服务中的网络安全挑战,揭示信息保护的重要性,并提供实用的安全策略,旨在为读者呈现一场技术与安全的较量,同时指出如何在享受云服务带来的便利的同时,确保数据的安全和隐私。
25 6
|
19天前
|
存储 人工智能 安全
云计算与网络安全:技术融合与挑战
在数字化时代的浪潮中,云计算和网络安全已成为推动社会进步的两大关键技术。本文将探讨云计算服务的发展,网络安全的重要性,以及信息安全技术的演进。我们将通过实例分析,揭示云服务如何增强数据保护,网络安全措施如何应对新兴威胁,以及信息安全技术的创新如何为企业带来竞争优势。文章旨在为读者提供对云计算和网络安全领域的深入理解,并展示它们如何共同塑造我们的未来。
|
18天前
|
监控 安全 网络安全
云计算与网络安全:技术挑战与解决方案
随着云计算技术的飞速发展,其在各行各业的应用越来越广泛。然而,随之而来的网络安全问题也日益凸显。本文将从云服务、网络安全和信息安全等技术领域出发,探讨云计算面临的安全挑战及相应的解决方案。通过实例分析和代码示例,旨在帮助读者更好地理解云计算与网络安全的关系,提高网络安全防护意识。