使用CSS滤镜后保存图像
Save images after using CSS filter
我正在建立一个新的网站,让用户对图像应用过滤器(就像Instagram一样)。我将使用-webkit-filter
。
用户必须能够保存过滤后的图像。有什么方法可以用JavaScript实现吗?
你不能直接保存图像,但你可以在画布中渲染它们,然后从那里保存。
参见:Save HTML5 canvas with images as a image
没有直接/直接的方法来使用CSS过滤器导出图像。
按照以下步骤保存/导出应用了-webkit-filter的图片:
1. 将图像渲染到画布:
var canvas = document.createElement('canvas');
canvas.id="canvasPhoto";
canvas.width = imageContaainer.width;
canvas.height = imageContaainer.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(imageContaainer, 0, 0, canvas.width, canvas.height);
从画布中获取ImageData并应用过滤器。例如:我将对下面的ImageData应用灰度过滤器:
function grayscale(ctx) { var pixels = ctx.getImageData(0,0,canvas.width, canvas.height); var d = pixels.data; for (var i=0; i<d.length; i+=4) { var r = d[i]; var g = d[i+1]; var b = d[i+2]; var v = 0.2126*r + 0.7152*g + 0.0722*b; d[i] = d[i+1] = d[i+2] = v } context.putImageData(pixels, 0, 0); }
添加一个事件并使用下面的代码触发下载
function download(canvas) { var data = canvas.toDataURL("image/png"); if (!window.open(data)) { document.location.href = data; } }
相关文章:
- 有没有一个javascript库能够修改和保存图像
- 如何使用html / angularjs保存图像文件
- 上传图像,重新定位,保存图像
- 使用JavaScript在分析中保存图像
- 从图像URL javascript html保存图像文件
- 从画布保存图像时缺少扩展名
- 如何用我在HTML5画布上绘制的src保存图像文件
- 使用 canvas.toDataURL() 解码和保存图像
- 如何旋转图像并保存图像
- 在 Javascript 中保存图像
- jQuery 保存图像点击
- 保存图像 src 的功能不起作用
- 禁用移动设备中的默认保存图像选项
- 使用 PHP 和 JavaScript 在黑莓中下载和保存图像
- 从 Base64 字符串保存图像不会打开
- 使用 Ajax 在 Ruby on Rails 中保存图像
- 如何从加载中保存图像宽度和高度
- 使用 js 保存图像
- 在操作方法中保存图像,然后将 URL 返回给客户端
- 使用图像URL和PHP从远程服务器上传/下载/保存图像到本地服务器