Paint方法总结(三):图层混合模式

参考扔物线大神博客

离屏绘制

在介绍图层混合模式之前先简单的说一下Android的离屏绘制。离屏绘制就是图层绘制的一种缓冲策略,通过canvas.saveLayer()将缓冲层保存起来,这个saveLayer会返回一个layerID,把图层先绘制在缓冲层,然后通过canvas.restoreToCount(layerId)恢复图层,将缓冲层的图像绘制在画布上。在进行图层混合演示的时候,要使用离屏绘制,因为如果直接在画布上进行图层混合的话,画布和画布的颜色也会加入到图层的混合策略中,这样会造成演示结果的偏差。

PorterDuff.Mode

PorterDuff.Mode 是用来指定两个图层共同绘制的时候的一个混合的策略,他是一个enum,不同的Mode可以指定不同的混合策略。最新的文档中,混合模式一共有18个所有的图层混合模式的效果都是作用于源图像上的

效果图就直接上官方文档吧

源图像和目标图像:

Mode.ADD

源图像与目标图像进行相加

Mode. CLEAR

源图像被清空,不被显示出来

Mode. DARKEN

保留源图像和目标图像较小的组建(官方解释,我不是很懂)

Mode. DST

源像素被丢弃,而目标保持不变

Mode. DST_ATOP

丢弃源像素未覆盖的目标像素。在源像素上绘制剩余的目标像素。

Mode.DST_IN

保留覆盖源像素的目标像素,丢弃剩余的源像素和目标像素。

Mode.DST_OUT

显示目标图像没有被源图像覆盖的地方

Mode. DST_OVER

源像素绘制在目标像素后面

Mode. LIGHTEN

保留源和目标像素的最大组件。(官方解释,很懵)

Mode. MULTIPLY

将源像素和目标像素相乘

Mode. OVERLAY

根据目标颜色复制或筛选源和目标

Mode. SCREEN

根据目标颜色复制或筛选源和目标

Mode. SRC

源像素替换目标像素

Mode. SRC_ATOP

丢弃不覆盖目标像素的源像素。在目标像素上绘制剩余的源像素。

Mode. SRC_IN

保留覆盖目标像素的源像素,丢弃剩余的源像素和目标像素。

Mode. SRC_OUT

保持源像素不覆盖目标像素。丢弃覆盖目标像素的源像素。丢弃所有目标像素

Mode. SRC_OVER

源像素绘制在目标像素上

Mode. XOR

丢弃源像素和目标像素,其中源像素覆盖目标像素。绘制剩余的源像素

Paint方法总结(三):图层混合模式相关推荐

  1. Android Paint 进阶之 图层混合模式(Xfermode)

    上一节概述了Paint进阶需要掌握的API,这一节针对图层混合模式进行讲解,主要是Xfermode的使用. 1.概念 图层混合模式是将所绘制的像素与canvas中对应位置的像素按照一定规则进行混合,形 ...

  2. Photoshop PS图层混合模式详解

    Photoshop 7.0的图层混合选项中增添了"线性加深"模式."线性减淡"模式."亮光"模式."线性光"模式和&qu ...

  3. PS图层混合模式MATLAB实现

    PS图层混合模式的MATLAB实现 一.基本介绍 二.算法 1. 组合模式(正常.溶解) 2. 加深混合模式(变暗.正片叠底.颜色加深.线性加深,深色) 3. 减淡混合模式(变亮.滤色.颜色减淡.线性 ...

  4. ps图层混合模式的含义

    1.正常模式(Normal模式)--这是图层混合模式的默认方式,较为常用.不和其他图层发生任何混合.使用时用当前图层像素的颜色覆盖下层颜色. 因为在PhotoShop中颜色是当作光线处理的(而不是物理 ...

  5. PS图层混合模式详解

    PS中图层混合模式中的溶解,变暗,正片叠底,颜色加深,线性加深,叠加,柔光,亮光,强光,线性光,点光,实色混合,差值,排除,色相,饱和度,颜色,亮度各是什么原理? Normal 正常模式,也是默认的模 ...

  6. PS学习--图层混合模式详解

    PS中图层混合模式中的溶解,变暗,正片叠底,颜色加深,线性加深,叠加,柔光,亮光,强光,线性光,点光,实色混合,差值,排除,色相,饱和度,颜色,亮度各是什么原理? Normal 正常模式,也是默认的模 ...

  7. css mix-blend-mode图层混合模式(跟ps的功能图层混合模式类似)

    mix-blend-mode 属性描述了元素的内容应该与元素的直系父元素的内容和元素的背景如何混合. 很多时候,我们使用的网站主题背景和图片的主色反差太大的时候,可以使用图层混合模式进行调整,当然又是 ...

  8. java paint方法调用_Java paint()方法个人理解

    这些天给同学讲了不少次JUI的 paint()方法和画笔,就目前而言已经比当初自己写的时候理解的多了不少了,虽然有点花时间,但好处还是有的.(习惯把Graphics g对象叫做画笔) 以前想要在某个容 ...

  9. html图片颜色加深,PS图层混合模式解析:变暗/正片叠底/颜色加深/线性加深/深色...

    之前,我们对使底层图像变亮的模式"变亮"."滤色"."颜色减淡"."线性减淡"与"浅色"有了相应的了 ...

  10. PS混合模式:解读图层混合模式中的高级混合功能

    图层样式在Photoshop中是一个特别常用的功能,在平常的设计和photoshop使用过程中,经常会用到图层样式,比如我们常用的描边.投影.内阴影和渐变叠加等图层混合模式,通过图层混合模式可以为图层 ...

最新文章

  1. 连接网络计算机后用户名更改不,电脑修改ip后无法上网
  2. [备忘][转载]apache 403错误 You don't have permission to access on this server
  3. mysql数据库导入导出文件sql文件
  4. 拦截导弹(信息学奥赛一本通-T1289)
  5. 你能抱我一下,好吗?
  6. Linux 上配置网络设备命令举例
  7. 穿越沙漠问题c语言算法,沙漠穿越问题_c语言课程设计.doc
  8. 备战2019秋招之程序员代码面试指南(左程云)C++
  9. 供应链业务架构设计概览
  10. 网络工程师十个常见面试问题
  11. 使用Kinect测量身高
  12. 使用promise解决回调地狱_Promise 技术调研 - 回调地狱的产生原因与解决方式
  13. 汇编语言 大小比较 理解 ja jna jg jle
  14. 技术美术自学——PBR材质通道基础 常见贴图种类列举(求dalao轻喷)
  15. 【优化】共轭函数(Conjugate Function)超简说明
  16. python获取List的形状
  17. Aria2-突破百度网盘下载限速
  18. 基于java springboot和vue的酒店管理系统
  19. 与病毒名称相似,“捏脸”游戏 ZEPETO 涉嫌窃听?...
  20. python做动画视频教程_Python入门教程:Python创建动画竟然这么简单!

热门文章

  1. Qt平台下使用QJson解析和构建JSON字符串
  2. JavaScript与页面交互
  3. 微信开发者工具在线调试
  4. BZOJ - 2819 Nim
  5. 转liunx 常用命令
  6. Oracle PL\SQL 基础学习一
  7. 一个队列类的实现(比delphi自带的速度快70倍)
  8. 域内,如何限制一台电脑只能指定的域用户登录
  9. vue-cli3 项目从搭建优化到docker部署
  10. miniMobile(手机)