如何在没有服务器的情况下保存在画布上应用 CSS 滤镜的图像?
在没有后端的画布上保存应用了 CSS 滤镜的图像
要保存在客户端应用了 CSS 滤镜的图像,请按照以下步骤操作:
转换为画布并提取图像数据
- 使用以下命令将图像转换为画布document.getElementById("myCanvas").getContext("2d").drawImage(image, 0, 0, canvas.width, canvas.height);.
- 使用 myCanvas 使用应用的过滤器提取图像数据。 toDataURL("image/png").
应用 CSS 过滤器Context
但是,如果不支持上下文过滤属性,则图像将被保存为无效果。要解决此问题:
- 使用 typeof ctx.filter === "undefined" 检查 context.filter 属性是否存在。
- 如果支持,请使用 ctx 应用 CSS 过滤器。在将图像绘制到画布之前,filter = "filterValue"。
- 如果不支持,请使用未显示的替代方法手动应用过滤器这里。
示例
此示例使用 filter 属性将棕褐色滤镜应用于图像。如果不支持,它将使用后备(未显示)。
var img = new Image(); img.crossOrigin = ""; img.onload = draw; img.src = "//i.imgur.com/WblO1jx.jpg"; function draw() { var canvas = document.querySelector("canvas"), ctx = canvas.getContext("2d"); canvas.width = this.width; canvas.height = this.height; // filter if (typeof ctx.filter === "undefined") { ctx.filter = "sepia(0.8)"; ctx.drawImage(this, 0, 0); } else { ctx.drawImage(this, 0, 0); // TODO: manually apply filter here. } document.querySelector("img").src = canvas.toDataURL(); }
登录后复制
请记住,CSS 过滤器仅适用于元素的外观,而不适用于实际的位图数据。要应用实际的滤镜,如果滤镜属性不可用,请在像素级别使用位图。
以上是如何在没有服务器的情况下保存在画布上应用 CSS 滤镜的图像?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
如何修复KB5055523无法在Windows 11中安装?
3 周前
By DDD
如何修复KB5055518无法在Windows 10中安装?
3 周前
By DDD
<🎜>:死铁路 - 如何驯服狼
4 周前
By DDD
R.E.P.O.的每个敌人和怪物的力量水平
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
<🎜>:种植花园 - 完整的突变指南
2 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

您是否曾经在项目上需要一个倒计时计时器?对于这样的东西,可以自然访问插件,但实际上更多

在元素个数不固定的情况下如何通过CSS选择第一个指定类名的子元素在处理HTML结构时,常常会遇到元素个数不�...

关于Flex布局中紫色斜线区域的疑问在使用Flex布局时,你可能会遇到一些令人困惑的现象,比如在开发者工具(d...

格子呢是一块图案布,通常与苏格兰有关,尤其是他们时尚的苏格兰语。在Tartanify.com上,我们收集了5,000多个格子呢
