我正在尝试创建一个图像编辑器,其中css-3用于应用过滤器,并需要下载该图像快速面对图像处理。
https://jsfiddle.net/sridharn/bq6w8fx2/
$(document).ready(function () {
var img = document.getElementById("image1");
// filters
var grayValue = "0.2";
var blurValue = "1px";
var brightnessValue = "150%";
var saturateValue = "0.2";
var contrastValue = "0.2";
var sepiaValue = "0.2";
// `filterVal`
var filterVal = "grayscale(" + grayValue + ") "
+ "blur(" + blurValue + ") "
+ "brightness(" + brightnessValue + ") "
+ "saturate(" + saturateValue + ") "
+ "contrast(" + contrastValue + ") "
+ "sepia(" + sepiaValue + ")";
// set `img` `filter` to `filterVal`
$(img)
.css({
"webkit-filter": filterVal,
"moz-filter": filterVal,
"ms-filter": filterVal,
"o-filter": filterVal
});
function downloadCanvas(link, canvas, filename) {
link.href = document.getElementsByTagName(canvas)[0].toDataURL();
link.download = filename;
}
document.getElementById('download').addEventListener('click', function () {
html2canvas(document.body, {
onrendered: function (canvas) {
var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); //Convert image to 'octet-stream' (Just a download, really)
window.location.href = image;
}
});
}, false);
});但是,下载的图像是空的。
发布于 2016-05-12 13:57:03
您不能下载包含滤镜的图像,因为filter:属性告诉浏览器如何对图像进行,而不是编辑它们,这意味着图像是相同的,但浏览器以不同的方式显示它。这就是为什么当你下载它们时,你总是得到一个空图像(没有滤镜的意义上是空的),因为原始图像是下载的。您将不得不使用图像编辑器来更改图像。
https://stackoverflow.com/questions/37178229
复制相似问题