图片涂鸦和水印其实是一个功能,实现的方式是一样的,就是一张大图片和一张小点图片叠加即可。前面在android图像处理系列之六--给图片添加边框(下)-图片叠加中也讲到了图片叠加,里面实现的原理是直接操作像素点。下面给出别外一种方式让图片叠加--用Canvas处理图片,canvas已经封装好了,直接调用就行。

下面看效果:

+

=

代码:

/**

* 组合涂鸦图片和源图片

* @param src 源图片

* @param watermark 涂鸦图片

* @return

*/

public Bitmap doodle(Bitmap src, Bitmap watermark)

{

// 另外创建一张图片

Bitmap newb = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Config.ARGB_8888);// 创建一个新的和SRC长度宽度一样的位图

Canvas canvas = new Canvas(newb);

canvas.drawBitmap(src, 0, 0, null);// 在 0,0坐标开始画入原图片src

canvas.drawBitmap(watermark, (src.getWidth() - watermark.getWidth()) / 2, (src.getHeight() - watermark.getHeight()) / 2, null); // 涂鸦图片画到原图片中间位置

canvas.save(Canvas.ALL_SAVE_FLAG);

canvas.restore();

watermark.recycle();

watermark = null;

return newb;

}

跟前面一样,要注意图片最好放在assets目录,另外注意图片回收,不然图片过到会造成内存紧张。这种叠加方式一般选用PNG格式的图片做为涂鸦图片或者水印,当然也可以用JPG,那就需要按照前面所说的android图像处理系列之六--给图片添加边框(下)-图片叠加进行像素点过滤,这样会影响处理速度,所以不建议用JPG图片,如果能写更高效的算法,也可以。

另外在做涂鸦的时候,需求可能会是用户可以按住涂鸦图片,然后进行拖动效果。这样的话,我给个思路,重写ImageView里面的onTouchEvent方法,MotionEvent.getAction()里面有三种状态,MotionEvent.ACTION_DOWN、MotionEvent.ACTION_UP和MotionEvent.ACTION_MOVE,根据这三种状态来判断用户的行为,决定是否移动图片,另外要注意判断涂鸦图片是否移动到原图片的边缘。由于这部分代码是跟裁剪放在一样的,不好贴出来,所以给大家一个思路,后面会把裁剪的代码贴出来。

OK,这篇就写到这里,后面还有一种图片叠加的方式,敬请期待!

android 涂鸦之图片叠加,android图像处理系列之七--图片涂鸦,水印-图片叠加...相关推荐

  1. android图像处理系列之五-- 给图片添加边框(中)

    前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了.下面就给出解决这个问题的思路. 思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水 ...

  2. android图像处理系列之五--给图片添加边框(中)

    前面一篇讲到给图片加边框的方式,只能给图片加一些有规则的边框,如果想加一些比较精美的效果,就有点麻烦了.下面就给出解决这个问题的思路. 思路是:一些比较精美的花边图片我们是很难用代码控制,就目前本人水 ...

  3. android图像处理系列之六--给图片添加边框(下)-图片叠加

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 前面介绍 ...

  4. android图像处理系列之六-- 给图片添加边框(下)-图片叠加

    前面介绍了一种用透明图片叠加的方式添加花边边框,下面将介绍另外一种图片叠加添加花边边框的方式.前面方法有一个缺点,就是做成PNG图片,图片体积会很大,不是一般的大,比同样的JPG大三倍多,如果项目可以 ...

  5. php 图片抠图,php 图像处理 抠图,生成背景透明png 图片

    *自定义一个图片等比缩放函数 *@param string $picname 被缩放图片名 *@param string $path 被缩放图片路径 *@param int $maxWidth 图片被 ...

  6. android中用点标识路径,Android Bitmap、路径、图片加上文本水印

    前沿 不同的app可能需要加上不同的logo标识这张图片归属问题,比如微博图片可能涉及到原图版权,或者涉及到个人信息认证敏感信息,从安全的角度来说也需要加上特定的文本logo用于标识此图的所属用途. ...

  7. 360快剪辑怎么更换水印图片 360快剪辑更换水印图片教程

    2019独角兽企业重金招聘Python工程师标准>>> 360快剪辑是一款非常不错的视频剪辑处理软件,该款软件功能十分强大,不管是视频编辑小白还是老手,都能够轻松驾驭,其中的水印功能 ...

  8. android图像处理系列之三--图片色调饱和度、色相、亮度处理

    原图: 处理后: 下面贴代码: 一.图片处理层: package com.jacp.tone.view; import java.util.ArrayList; import android.cont ...

  9. android 画布叠加,Android实现图片叠加效果的两种方法

    本文实例讲述了Android实现图片叠加效果的两种方法.分享给大家供大家参考,具体如下: 效果图: 第一种: 第二种: 第一种是通过canvas画出来的效果: public void first(Vi ...

最新文章

  1. 每日一皮:当我在处理别人的代码时...
  2. (转载)关于安装Ubuntu系统时提示“分配到/的分区/dev/sdax开始于xxxx字节,使用磁盘的最小对齐,这可能造成非常差的性能...的解决办法
  3. App上线前产品经理自查的清单
  4. 百万年薪程序员必会的五种技术
  5. 全国计算机等级考试题库二级C操作题100套(第50套)
  6. linux内核端口绑定,linux 多网卡bonding 绑定 端口聚合
  7. Acer 4750 安装黑苹果_安装黑苹果,你需要注意哪几点
  8. C#实现中国天气网XML接口测试
  9. boost::bind with ros topic,ros中subscribe用boost::bind绑定多个参数
  10. 数据结构上机实践第四周项目2 - 建设“单链表”算法库
  11. 数组对象 按某个属性排序
  12. 杭电计算机17年复试真题详解
  13. XINS 3.1.0 Alpha2 发布,远程 API 调用规范
  14. DAS、NAS、SAN、IPSAN、iSCSI-SAN及IDE、SAS、SCSI、iSCSI简介
  15. 常见开源代码扫描检测技术分析
  16. 解决2020R2,2022R1等版本的SCDM无法编辑草图尺寸的问题
  17. P物质肽[DArg1, DTrp5, 7, 9, Leu11]
  18. 明源售楼系统技术解析—诚意认购(一)
  19. Ubuntu生成so共享库的方法
  20. 短视频的素材在哪里找呢?推荐给你一个好办法

热门文章

  1. 直方图均衡化 原理、流程、公式推导及matlab实现
  2. hive jdbc 访问 配置_Hive入门级教程(详细)
  3. 我的成长笔记20210325(一天写了247条用例)
  4. 骑马与砍杀服务器修复,骑马与砍杀修复存档损坏的办法
  5. 支持javascript的ppt软件_强大CSS3的3D幻灯片工具reveal.js(推荐)
  6. 21天jmeter打卡day4-请求并查看响应信息
  7. java环境安装1359错误_解决The valid characters are defined in RFC 7230 and RFC 3986错误问题...
  8. Ubuntu部署python3.7的开发和运行环境
  9. dc综合与pt静态时序分析(中文)_新能源汽车小三电系统(PDU/DC/OBC)技术研究详解...
  10. android仿微信图片编辑器,electron/vue可编辑框contenteditable|仿微信截图