- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Canvas ,其中包含透明背景上的艺术。我像这样降低饱和度:
boardCtx.fillStyle = "rgba(0, 0, 0, 1.0)";
boardCtx.globalCompositeOperation = 'saturation';
boardCtx.fillRect(0, 0, boardCanvas.width, boardCanvas.height);
发现透明背景变成了不透明的黑色。我不希望饱和度混合模式改变 Alpha channel ...我做错了什么吗?我当前的解决方案是在去饱和之前复制 Canvas ,并用它来掩盖黑色背景,使其远离去饱和副本,但这涉及另一个 Canvas 和大画......并不理想。
最佳答案
ctx.filter
2D 上下文 filter可用于将各种滤镜应用于 Canvas 。
ctx.filter = "saturate(0%)";
ctx.drawImage(ctx.canvas,0,0);
但是如果存在抗锯齿/透明度,这会增加 Alpha,从而降低质量。
要修复您需要使用 ctx.globalCompositeOperation = "copy"
操作。
ctx.filter = "saturate(0%)";
ctx.globalCompositeOperation = "copy";
ctx.drawImage(ctx.canvas,0,0);
// restore defaults;
ctx.filter = "";
ctx.globalCompositeOperation = "source-over";
这将阻止 Alpha channel 被修改。
警告。检查 filter 底部的浏览器支持页。如果不支持,如果您使用 ctx.globalCompositeOperation = "saturation"
,则必须使用 Canvas 的副本来恢复 Alpha。
关于javascript - "saturation"globalCompositeOperation 不改变透明度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49313892/
我有一个 Canvas ,其中包含透明背景上的艺术。我像这样降低饱和度: boardCtx.fillStyle = "rgba(0, 0, 0, 1.0)"; boardCtx.globalCompo
我想写一小段程序来启动线程,以线性方式消耗可用的 RAM 内存,直到达到一定水平,然后停止(理想情况下,暂停直到“足够”的内存被释放,然后继续创建线程, 依此类推。) 我尝试了以下操作,但是 list
让我们看一下颜色#a94442 hsl(1, 44%, 46%): 现在,如果我在 less 中执行 saturate(#a94442, 100%),我会得到 #eb0500 hsl(1, 100%,
在 GIMP 中,我可以轻松地改变色调和饱和度。例如下图是原图和色相-90、饱和度100后的最终效果。 我如何继续从 Python PIL 获得相同的结果? 原图 最终图片 最佳答案 您可以结合使用
我编写了一个简单的程序来实现 SSE 内在函数,用于计算两个大(100000 或更多元素)向量的内积。该程序比较了以传统方式计算的内积和使用内在函数计算的执行时间。一切正常,直到我在计算内积的语句之前
我有这个将类型族映射到类型级列表的最小工作示例(从 singletons 库中挑选): {-# language PolyKinds #-} {-# language DataKinds #-} {-
我有一个 RMI 服务器,需要通过模拟多个客户端的流量生成器每秒发送数千个请求进行测试。 我想做的是与 this 类似的事情但使用 RMI。 基本上,如果服务器达到饱和,则停止接受/处理请求,以便它可
下面的函数成功改变了图片的对比度和亮度。 Bitmap bmp; ImageView alteredImageView; ... public void drawAlteredImage(float
这个问题与最新版本的 Java 有关。 30 个生产者线程将字符串推送到抽象队列。一个写入器线程从同一个队列弹出并将字符串写入驻留在 5400 rpm HDD RAID 阵列上的文件。数据以大约 11
我正在做一些 3D 图形,我有一片开阔的海洋。对于这个海洋,我有一个矩阵代表海洋特定矩形部分的海况(即波浪高度)。海洋的其余部分是平坦的。我的问题是,我控制的有波浪的海位于开阔平坦海的中间,网格边缘的
我想用HSL (Hue Saturation Lightness)颜色模型(圆柱形)。也许我错过了它,但我找不到根据该方案返回颜色的函数。 hcl来自 colorspace包使用色度而不是饱和度。我想
我是 HealthKit 框架的新手,想要实时了解血流中的氧饱和度。 引用: https://github.com/coolioxlr/watchOS-2-heartrate 从这个存储库中,我尝试查
我根据这些注释在 Matlab 中编写了反向传播算法:http://dl.dropbox.com/u/7412214/BackPropagation.pdf 我的网络采用长度为 43 的输入/特征向量
在iOS 5的UIColor中有这个方法: - (BOOL)getHue:(CGFloat *)hue saturation:(CGFloat *)saturation brightness:(CGF
我正在使用以下函数来“更改”UIColor 的饱和度、亮度和 alpha: //UIColor *color = [self color:[UIColor redColor] saturation:0
也许“饱和”是错误的词,但基本上我的 Dispatch 线程一直很忙,因为我有大量的 UI 更新。 在此之前,我一直遵循(并享受)我所说的 vanilla MVVM 设计模式。我用来指导我的开发的关键
我可以用 RGB 值设置 uicolor: [UIColor colorWithRed:0.53 green:0.37 blue:0.11 alpha:1.00]; 我可以用 hsb 值设置 uico
为了在 CSS 中添加“磨砂玻璃”效果,您只需使用 backdrop-filter: blur(20px) saturation(180%)。在 Flutter 中创建背景过滤器很简单,看起来应该与此
如果我在下面的代码中插入 HSB 值 0.667, 1, 1,它应该返回蓝色。但是,它返回红色。我已经使用 rgb-to-hsb 转换器验证了 0.667 应该是蓝色调。使用此方法的不同值似乎总是会返
我正在学习使用 Swift for iOS 中的控件。我正在尝试构建一个简单的应用程序,该应用程序使用 Slider 通过 UIColor 类调整屏幕的背景颜色。 // function is cal
我是一名优秀的程序员,十分优秀!