如何使用 Java 代码给图片增加倒影效果
效果
倒影率为 90%时的效果:
倒影率 10%时的效果:
实现原理
倒影率作为参数 rate 传入 Reflection button 的事件处理函数:
CreateImageWithReflection 这个 Java 方法会根据传入的倒影率参数 rate,创建一个对应高度的 reflectionImage 用于显示倒影,最后返回的 Bitmap 是包含了原始图片文件 original image 和倒影效果的一张联合图片 union image:
这个项目文件的完整路径: https://github.com/i042416/imagetool/commits/master
本文介绍的例子在 Android 安卓手机上测试通过。
先看看效果吧。可以看到这个开发好的安卓应用有三个按钮:Zoom In 缩小图片,Zoom Out 放大图片和 Save 保存。
初始页面:
可以在左边边框自由移动图片,图片下面的调试界面 debug screen 会显示详细的图片矩阵 matrix 信息:
点击 Save button 后,根据左边图片的最新状态,会创建一个镜像文件 Snapshot 并显示在右边的 ImageView 控件里:
点击 Zoom in 按钮可以使图片缩小:
点击 Zoom out 使图片放大:
这个用 Java 开发的安卓应用完整代码: https://github.com/i042416/image_zoom.git
Jerry 喜欢用有道云笔记这款软件做自己的知识管理和知识体系的构建。
当您看到一篇好的有道云笔记分享时,可能会想将其精美的图片下载到本地。作为程序猿,我们不会去手动一张张下载。写个程序帮我们自动下载吧。
比如这个笔记:http://note.youdao.com/noteshare?id=62840e43da1f6b71cdbedb3b7723f7fa
打开之后是这样的:
我们需要研究如何知道一个有道云分享笔记里究竟包含了哪些图片。
我们可以使用有道云笔记提供的这个 Restful API:http://note.youdao.com/yws/public/note/<note_guid>?keyfrom=public
我们把一个分享笔记的 guid 传入上述的 url,执行一个 http 调用看看结果。例如我文章开头的例子,那个分享笔记的 guid 是 62840e43da1f6b71cdbedb3b7723f7fa,那么完整的 Restful API 链接为:http://note.youdao.com/yws/public/note/62840e43da1f6b71cdbedb3b7723f7fa?keyfrom=public
输入 Chrome 浏览器敲回车,看看这个 Restful API 返回的内容:
从上图不难发现整个笔记包含的图片文件,其地址包含在 HTML 源代码的 src 开头的 img 标签页的 src 属性里。所以只需要用一个循环,遍历这些 img 标签,下载 src 里指向的图片即可。
最后就是写代码实现上述功能了。写好的 ABAP 程序如下。
输入有道云分享笔记的 GUID 和本地存储文件夹名称,执行。
稍等片刻,所有的图片就被 ABAP 程序自动下载到本地指定文件夹了。节省了程序猿大量宝贵的时间。
这个 SAP ABAP 程序的完整代码在我的 github 里:
https://github.com/i042416/KnowlegeRepository/tree/master/ABAP/youdao_note_download
版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/f0c711a0b4a78d01dabd3ffa3】。文章转载请联系作者。
评论