如何保存应用了 CSS 过滤器的图像

Rah*_*hul 8 javascript css jquery filter

我想知道如何将 CSS 过滤器应用于图像,然后将图像保存到磁盘。

例如,我有一个图像标签,我可以通过 CSS 应用棕褐色效果

img.sepia{
  filter: sepia(20%);
}
Run Code Online (Sandbox Code Playgroud)

并将该类应用于 HTML 中的图像标记

<img src="img.png" class="sepia" />
Run Code Online (Sandbox Code Playgroud)

如何在应用过滤器的情况下保存该图像?

小智 9

您可以将图像写入画布元素,在 JavaScript 中设置所需的过滤器,然后下载该图像。所以它会是这样的

var canvas = document.getElementById('image');
var ctx = canvas.getContext('2d');
ctx.filter = "sepia(20%)";
var img = document.getElementById("dataimage");
ctx.drawImage(img,0,0, canvas.width, canvas.height);

var downloadFile = document.getElementById('download');
downloadFile.addEventListener('click', download, false);


function download() {
   var dt = canvas.toDataURL('image/jpeg');
   this.href = dt;
};
Run Code Online (Sandbox Code Playgroud)
img{
  width:400px;
  height:400px;
}
Run Code Online (Sandbox Code Playgroud)
<img src="" id="dataimage" />
<canvas id="image" width="400px" height="400px"></canvas>
<a id="download">Download image</a>
Run Code Online (Sandbox Code Playgroud)