【发布时间】:2020-01-06 03:51:19
【问题描述】:
我尝试做的 HTML 页面是将图像上传到画布,在该图像上放置水印,然后将带有水印的图像下载为一个 png 文件。目前的问题是我可以将图像上传到画布并添加水印,但我无法下载画布。
我已经在互联网上尝试了一些解决方案,包括 stackoverflow。 Fidesaver.js 不适用于此。所以这里是代码:(代码中的水印只是我在谷歌找到的随机 240x240 图像)
Glitch.com上的项目页面好像已经不行了,所以我把代码放到了代码sn-p中:
Upper image:<br>
<img src="https://micolsalomone.com/wp-content/uploads/2018/04/preloader-logo-240x240.png" width="150px" alt="Example image" id="wm" >
<input type="file" id="imageLoader" name="imageLoader"/><br>
<canvas id="imageCanvas"></canvas>
<script type="text/javascript">
var wm=document.getElementById("wm");
var imageLoader = document.getElementById('imageLoader');
imageLoader.addEventListener('change', handleImage, false);
var canvas = document.getElementById('imageCanvas');
var ctx = canvas.getContext('2d');
function handleImage(e){
var reader = new FileReader();
reader.onload = function(event){
var img = new Image();
img.crossOrigin = '';
img.onload = function(){
canvas.width = 240;
canvas.height = 240;
ctx.drawImage(img,0,0,240,240);
ctx.drawImage(wm,0,0,240,240);
}
img.src = event.target.result;
}
reader.readAsDataURL(e.target.files[0]);
}
</script>
【问题讨论】:
-
@SumanPatra 代码应该插入到哪里?我刚刚开始学习 Javascript 和 Canvas。我已经尝试了多种方法,但都没有奏效。他们只会创建一个空白 png,或者在打开 html 后立即下载空白 png。如果您有任何想法,可以在此处编辑项目:glitch.com/edit/#!/join/1a65c154-7e29-449b-8ba4-d746a6a3120a
标签: javascript html canvas