【发布时间】:2018-01-25 20:04:48
【问题描述】:
我正在执行以下脚本,以便使用 Javascript 将图像转换为灰度。
<body>
<canvas id="myCanvas" width="578" height="400"></canvas>
<script>
function drawImage(imageObj) {
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var x = 69;
var y = 50;
context.drawImage(imageObj, x, y);
var imageData = context.getImageData(x, y, imageObj.width, imageObj.height);
var data = imageData.data;
for(var i = 0; i < data.length; i += 4) {
var brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];
// red
data[i] = brightness;
// green
data[i + 1] = brightness;
// blue
data[i + 2] = brightness;
}
// overwrite original image
context.putImageData(imageData, x, y);
}
var imageObj = new Image();
imageObj.onload = function() {
drawImage(this);
};
imageObj.src = 'text.png';
</script>
每当我更改 imageObj.src 时,我的浏览器都会以灰度显示指示的图像。但是,我想要的是仅在单击某种按钮时显示转换后的图像。鉴于我的图片是在脚本开头上传的。
我试过了
<button onclick="drawimage(uploadedFile)">Here</button>
显然没有用。 我还想在我的其余代码中使用新转换的图像(将其存储在某种变量中),但仍然想不出办法。 谢谢你帮助我!
【问题讨论】:
标签: javascript html grayscale