首页
学习
活动
专区
圈层
工具
发布

终端图像处理系列 - 图像混合模式的Shader实现

在图像处理应用中,将两张或者多张图片混合显示是非常常见的一种操作,应用场景包括但不限于:加水印、标签,插入画中画,遮盖等等。 最常见的图像混合模式是普通混合模式,比如加水印。...除了普通混合模式外,还有多种图像混合模式,包括但不局限于:正片叠底(multiply)、滤色模式(screen)、叠加模式(overlay)、柔光模式(softlight)、强光模式(hardlight...每一种混合模式都对应了一种函数T=F(S,D),其中,T是混合后的像素颜色,S表示用于混合的像素颜色,D表示底图的像素颜色(S,D,T的取值范围都是0~1)。...下面是各种混合模式的计算公式,这里选择最常见的12种混合模式作为例子。其它的混合模式可以类似实现。...(绘制在同一个frameBuffer上,不用两个frameBuffer来回倒腾),相当方便~ 在shader里面手动实现的方法如下: ?

4.8K170

终端图像处理系列 - OpenGL混合模式的使用

传统意义上的混合,是将源颜色乘以源因子,目标颜色乘以目标因子,然后相加。...在Fragment Shader手动实现混合算法比较自由,我们可以自定义一些混合方法,实现一些OpenGL自带混合模式无法实现的复杂混合算法,缺点是在部分GPU上同一个texture无法既作FBO输出,...我们可以把OpenGL的一次渲染过程形象地比作画家拿画笔在画布上作画,假如画家拿着黄色的画笔在红色的画布上作画,最后画出一幅绿色的图,这里画笔的黄色就是源色,画布上的红色就是底色,又叫目标色,绿色就是混合以后的结果...OpenGL混合模式在Android平台上的使用 在Android上使用OpenGL ES时,纹理上传最常用的方式就是先把图片解码成Bitmap后调用GLUtils.texImage2D(int target...在图片为完全不透明的情况下(像素点alpha值为255),预乘机制其实对原始图像没有影响,但是在半透明、渐变等情况下,预乘机制会对OpenGL混合因子的选择产生影响。

5.5K151
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    几种SVG图像的fallbacks

    在网页前景图像的使用上,针对不同像素比的屏幕,常规的做法是使用2X 3X的图像。 一些特定场景可以使用SVG来完成,因为他的矢量特性,不需要再针对更高的像素比出多套图片。...而使用svg必然要因为兼容性等因素考虑好fallbacks,常用的有几种方式: 1.通过alt或者文本标签的方式做提示 2.通过判断或者查询显示一张图片 通常都不会选择第一种。...第二种,也有多种方案,下面我们列举几个: 1.html的source标签属性 type=”image/svg+xml” 方式,在支持的浏览器里使用SVG,在不支持的浏览器里显示PNG,优点是type灵活...,可用于SVG,WEBP等,而且保持了img标签的特性,方便做布局操作。...标签属性 type="image/svg+xml" 方式,在支持的浏览器里使用SVG,在不支持的浏览器里显示PNG,优点是type灵活,可用于SVG,WEBP等,而且保持了img标签的特性,方便做布局操作

    1.2K50

    强大的混合模式

    本文就将介绍,使用 CSS,快速将一个普通黑色二维码,变成任意我们想要的彩色渐变二维码。 强大的混合模式 拥有一张原图,想改变其颜色。...在 CSS 中,我们很快可以想到 滤镜 filter、或者是 混合模式 mix-blend-mode。 这里,我们就需要用到 混合模式 mix-blend-mode。...混合模式最常见于 photoshop 中,是 PS 中十分强大的功能之一。目前 CSS 已经原生支持了大部分的混合模式。...原理其实非常简单,我们实现一张渐变图形,这张图形通过混合模式中的 mix-blend-mode: lighten 与白底黑字的二维码重叠在一起后,二维码中的白色区域将保持不变,而二维码中的黑色区域将展现为渐变图案中的颜色...,用作渐变图层,实际的重叠效果,我制作了一个动画: 这样,我们可以通过混合模式,将一张黑色的二维码图片,变成了渐变色。

    83720

    怎么生成暗黑模式和明亮模式的 SVG 图片?

    在做博客顶部栏下落奶油图的时候,就在想怎么适配暗黑模式和明亮模式呢?本文将记录两个思路。...1 方案一:通过模板生成两张图片 这是最容易想到的,也是我最初的想法,通过两张图片来实现暗黑模式和明亮模式的切换。...> 然后,我们可以通过 Hugo 的模板引擎来生成两张图片: {{- $template := resources.Get "images/drop.template.svg" -}} {{- $resource..." true) | minify).RelPermalink -}} 这样,我们就得到了暗黑模式和明亮模式的两张图片,正如现在博客所看到的一样。...> 注意,这个图片没有任何模板执行的内容,只是一个 SVG 图片,那我们就可以拿来直接使用了,例如: 主题 图片 明亮 light image 暗黑 dark image 但是!

    51910

    FireFox下Canvas使用图像合成绘制SVG的Bug

    本文适合适合对canvas绘制、图形学、前端可视化感兴趣的读者阅读。 楔子 所有的事情都会有一个起因。 最近产品上需要做一个这样的功能:给一些图形进行染色处理。...于是我把之前写好的两种算法发给了小伙伴,让他参照实现,第一种算法是操纵像素、第二种使用了图像合成:globalCompositeOperation。 所有的事情都可能会有意外,写程序更是如此了。...通过一起排查,最终发现我的示例代码和产品中代码的一个区别是:示例代码用的是png图片,而产品中用的是svg图片。 难道是svg图片的问题,拿一个svg图片放到示例代码中,果然不对。...下面是一段用于测试的代码,ctx.globalCompositeOperation = 'destination-out' 表示用源图像的形状去挖空目标图像。...如果是,则先把svg图片绘制到临时的canvas上面。 后续绘制用临时的canvas替代svg图片。

    1.4K10

    玩转tke的混合网络模式

    tke上腾讯云有提供2中网络模式,分别是Global Router(下面我们简称GR)和vpc-cni,这2种网络模式的优劣,如何选型可以参考https://cloud.tencent.com/document.../product/457/44966,那么什么是tke的混合网络模式呢,首先我们看看tke的网络模式有哪几种。...如果创建集群选择的是vpc-cni,后续是无法再时区GR) 其实混合网络模式就是创建集群时候网络选择GR,然后后续开启vpc-cni这个网络模式附加到集群上,今天我们重点讲讲GR+vpc-cni的混合网络模式下如何使用...,就需要用到GR+vpc-cni这种混合网络模式了,下面我们来具体讲讲这种模式怎么使用。...启用混合网络模式 首先我们创建一个GR模式的tke集群,然后在集群的基本信息中找到开启vpc-cni模式的按钮,点击开启 image.png 这里会让你选择一个空的子网来用于vpc-cni的模式下,pod

    2.3K30

    FireFox下Canvas使用图像合成绘制SVG的Bug

    本文适合适合对canvas绘制、图形学、前端可视化感兴趣的读者阅读。 楔子 所有的事情都会有一个起因。 最近产品上需要做一个这样的功能:给一些图形进行染色处理。...于是我把之前写好的两种算法发给了小伙伴,让他参照实现,第一种算法是操纵像素、第二种使用了图像合成:globalCompositeOperation。 所有的事情都可能会有意外,写程序更是如此了。...通过一起排查,最终发现我的示例代码和产品中代码的一个区别是:示例代码用的是png图片,而产品中用的是svg图片。 难道是svg图片的问题,拿一个svg图片放到示例代码中,果然不对。...下面是一段用于测试的代码,ctx.globalCompositeOperation = 'destination-out' 表示用源图像的形状去挖空目标图像。...如果是,则先把svg图片绘制到临时的canvas上面。 后续绘制用临时的canvas替代svg图片。

    1.6K00

    UTNet 用于医学图像分割的混合Transformer

    作为前置依赖,本篇阅读笔记首先介绍了 Transformer Architecture 和在医学图像分割上的应用;其次,分析了论文中提出的 UTNet 架构(主干 U-Net,混合 Transformer...,这些特征图一般是下采样后的低分辨率图像。...为了解决上面的问题,文章中提出的 U-Net 混合 Transformer 网络:UTNet,它整合了卷积和自注意力策略用于医学图像分割任务。...这种混合架构可以利用卷积图像的归纳偏差来避免大规模预训练,以及 Transformer 捕获全局特征关系的能力。...5 总结 这篇阅读笔记大多为个人理解,代码复现我后面也许还会更新一篇文章,由于一些医学图像处理任务数据集的特殊性,vit 在医学图像上的应用还需要不断优化,最近有一些不错的想法,也欢迎交流和纠正!

    1.5K30

    BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点

    目录 1、BMP格式图像 2、GIF格式图像 3、TIFF格式图像 4、PNG格式图像 5、JPG格式图像 6、SVG格式图像 7、总结 7.1、有损vs无损 7.2、索引色vs直接色 7.3...在项目开发的过程中经常会读取或保存图像文件,不同类型的图像特点不同,适用的范围也不同,简要介绍BMP、GIF、TIFF、PNG、JPG和SVG格式图像的特点。...JPEG格式是目前网络上最流行的图像格式,是可以把文件压缩到最小的格式,JPG图片格式的设计目标,是在不影响人类可分辨的图片质量的前提下,尽可能的压缩文件大小。...不过它的缺点也很明显,编辑和重新保存 JPG 文件时,JPG 会混合原始图片数据的质量下降,而且这种下降是累积性的。...6、SVG格式图像 SVG是Scalable Vector Graphics的简写,它是可缩放矢量图形,SVG图片由直线和曲线以及绘制它们的方法组成。

    8.8K32

    c#有什么显示矢量图SVG的控件VB.NET-svg转透明PNG图像

    /[在C#中,有多种方式可以显示SVG图像,以下是一些常用的控件和库:1....DevExpress SvgImageBox 控件DevExpress的SvgImageBox控件可以用于WinForms应用程序中显示SVG图像。...它提供了设计时和运行时访问SVG图像各个元素(如矩形、圆形、路径等)的功能,并允许自定义这些元素的可见性和外观设置。此外,还支持元素的热跟踪和选择,以及响应元素的点击和右键点击事件。2....Svg.NET 库Svg.NET是一个开源的C#库,用于处理SVG文件。它可以用来加载、解析、渲染SVG图像,并将其转换为其他格式(如位图)。...具体方法是先使用Svg.NET将SVG图像转换为位图,然后再将位图设置为PictureBox的Image属性。5.

    2.1K10

    常用的像素操作算法:图像加法、像素混合、提取图像中的ROI

    图像可以是看成是一个多维的数组。读取一张图片,可以看成是读入了一系列的像素内容。这些像素内容,按照不同的模式具有不同的格式。对于三通道的 RGB 位图来说,每个像素是一个 8-bit 整数的三元组。...图像的像素操作是比较基础的图像算法,下面列举三个常用的像素操作算法。 图像加法 图像的加法表示两个输入图像在同一位置上的像素相加,得到一个输出图像的过程。...图像加法.png Operator的add表示矩阵加法,有一个要求两个图像必须大小一致。...像素混合 在这里混合是线性混合,跟之前的图像加法有一定的区别。...像素混合.png Operator的addWeight方法表示像素混合。 ?

    1.8K20

    Android灵魂画家的18种混合模式

    它的作用就是将画布上的当前图像(即目标图像DST)和后面需要绘制的图像(即源图像SRC)按照一定的算法进行混合。简单点说就是把源图像SRC与目标图像DST进行混合。...4 18种混合模式 在 《Compositing Degital Images》 中,Thomas Porter和Tom Duff展示了12中基本的混合模式: ?...我们可以将上图中的A对应目标图像DST,B对应源图像SRC去理解。通过组合这12种混合模式,足够实现任意的2D图像合成效果了。十分的强大。对照着上面CoorChice画的图理解吧。...也许筒靴们平时都只听说PorterDuff.Mode是16种模式,因为官方的例子中就出现了16种模式。但事实上,Android提供的混合模式共有18种,筒靴们在上图中也是能看到滴。...其次,像素混合是对两个区域进行的。官方的示例中,黄圆和蓝正方形都是画在大小和黑色边框相等的Bitmap上的,然后再将两个Bitmap的像素进行混合,此时两个Bitmap的区域是【完全重合】的。

    1.5K20

    ArcGIS Pro的混合模式,原来这么好玩

    大家好,我是万年单身狗南南 科学研究表明,人一旦单身的久了,就喜欢会折腾 今天我就带大家玩玩ArcGIS Pro的图层混合 图层混合 关于图层的混合,说的直白点就是图层摞一块按什么方式叠加混合得到最终效果...每个混合模式遵循一个公式,这个公式就是图层摞一块的方式,不知道你们能不能理解 理解不了也没关系,我们直接上案例 叠加 这是在ArcGIS Pro中的谷歌影像,你可以直观的感受到他们亮度的不同 这是是因为我在图一的影像中叠加了一个白色的...又不能只显示混合好的?谁说没有办法了??? 线性减淡 先看结果,这是不是一个很棒的晕渲图 在开始操作之前,我先来讲一下线性减淡的原理,也就是图层摞一块的方式。...线性减淡是通过增加亮度使基色变亮以反映混合色。它与滤色模式相似,但是可产生更加强烈的对比效果。与黑色混合则不发生变化。...所以准备两个纯色图层,一个白色,一个黑色,大概就这样 把这两个图层合并为图层组,再把图层组混合模式改为线性减淡 晕渲图就出来了 叠加一下山体阴影(图层混合模式改为叠加) 我们还可以把他的边缘羽化一下

    1.6K10

    图像上的算术运算 | 十一

    OpenCV功能将提供更好的结果。因此,始终最好坚持使用OpenCV功能。 图像融合 这也是图像加法,但是对图像赋予不同的权重,以使其具有融合或透明的感觉。根据以下等式添加图像: ?...第一幅图像的权重为0.7,第二幅图像的权重为0.3。cv.addWeighted()在图像上应用以下公式。 ? 在这里γ 被视为零。...如果我添加两个图像,它会改变颜色。如果我混合它,我得到一个透明的效果。但我希望它是不透明的。如果是一个矩形区域,我可以使用 ROI,就像我们在上一章中所做的那样。...但是 OpenCV 的 logo 不是长方形的。所以你可以使用如下的按位操作来实现: 我想在图像上方放置OpenCV徽标。如果添加两个图像,它将改变颜色。如果混合它,我将获得透明效果。...如果是矩形区域,则可以像上一章一样使用ROI。但是OpenCV徽标不是矩形。

    1.7K10

    混合渲染模式:SSG 与其他技术的结合

    SSG 的基本概念在传统的 Web 应用开发中,页面通常分为动态生成和静态生成两种方式。...模板渲染:工具会结合获取的数据和预定义的模板,生成完整的 HTML 页面。静态资源生成:除了 HTML 页面,SSG 还会生成关联的 CSS、JavaScript 和其他静态资源。...常见的 SSG 工具与框架在现代前端开发中,有许多广泛使用的 SSG 工具和框架。以下是几个代表性例子:Next.js:作为 React 的生态核心之一,Next.js 提供了强大的 SSG 支持。...Hugo:这是一个用 Go 编写的高性能 SSG 工具,常用于技术博客和文档站点的构建。Hugo 的速度是其最大优势。...复杂性提升:与传统静态文件相比,SSG 需要额外的开发工具和流程支持。为了弥补 SSG 的局限性,许多现代框架支持混合渲染模式。

    1K00
    领券