【发布时间】:2014-06-05 19:14:57
【问题描述】:
所以这个网站http://www.html5canvastutorials.com/advanced/html5-canvas-invert-image-colors-tutorial/ 有一个反转颜色的教程。我一直在尝试做类似的事情,但它不起作用,尽管我没有错误。我也在本地服务器上运行它,因为我最初遇到了阻止它正常运行的安全错误,现在 Chrome 运行代码没有问题。我只是在屏幕上看不到任何变化。 我决定将他们的代码转移到 JSFiddle 中只是为了查看它的工作情况,然后通过更改值来学习,但是当我点击运行时,darth vader 图像并没有反转。这是否意味着他们的示例代码缺少某些内容,并且可以解释为什么我没有看到我正在处理的任何变化?
感谢您的帮助。
根据要求http://jsfiddle.net/user69247/fMwp5/1/
(对不起,因为我有 jsfiddle 链接,所以也希望发布代码)
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
</style>
</head>
<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) {
// red
data[i] = 255 - data[i];
// green
data[i + 1] = 255 - data[i + 1];
// blue
data[i + 2] = 255 - data[i + 2];
}
// overwrite original image
context.putImageData(imageData, x, y);
}
var imageObj = new Image();
imageObj.onload = function() {
drawImage(this);
};
imageObj.src = 'http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg';
</script>
【问题讨论】:
-
你能提供你创建的小提琴吗 - 我们可以看看有什么问题。
-
很抱歉一开始就应该这样做,现在添加它:)
标签: javascript html canvas