Colors 帆布不';行不通
我正在尝试使用画布。我正在尝试制作一个按钮,当你点击它时,它会将图片更改为灰度等。这是我的代码,我不知道为什么它不工作Colors 帆布不';行不通,colors,grayscale,Colors,Grayscale,我正在尝试使用画布。我正在尝试制作一个按钮,当你点击它时,它会将图片更改为灰度等。这是我的代码,我不知道为什么它不工作 <script> $('#buttonID').click(function generateRGBKs( img ) { var w = img.width; var h = img.height; var rgbks = []; var canvas = document.createEl
<script>
$('#buttonID').click(function generateRGBKs( img ) {
var w = img.width;
var h = img.height;
var rgbks = [];
var canvas = document.createElement("canvas");
canvas.width = w;
canvas.height = h;
var ctx = canvas.getContext("2d");
ctx.drawImage( img, 0, 0 );
var pixels = ctx.getImageData( 0, 0, w, h ).data;
// 4 is used to ask for 3 images: red, green, blue and
// black in that order.
for ( var rgbI = 0; rgbI < 4; rgbI++ ) {
var canvas = document.createElement("canvas");
canvas.width = w;
canvas.height = h;
var ctx = canvas.getContext('2d');
ctx.drawImage( img, 0, 0 );
var to = ctx.getImageData( 0, 0, w, h );
var toData = to.data;
for (
var i = 0, len = pixels.length;
i < len;
i += 4
) {
toData[i ] = (rgbI === 0) ? pixels[i ] : 0;
toData[i+1] = (rgbI === 1) ? pixels[i+1] : 0;
toData[i+2] = (rgbI === 2) ? pixels[i+2] : 0;
toData[i+3] = pixels[i+3] ;
}
ctx.putImageData( to, 0, 0 );
// image is _slightly_ faster then canvas for this, so convert
var imgComp = new Image();
imgComp.src = canvas.toDataURL();
rgbks.push( imgComp );
}
return rgbks;
});
</script>
</head>
<body>
<img src="profile.jpg" width="400px" height="380px">
<FORM>
<INPUT TYPE="BUTTON" VALUE="Change Color" ONCLICK="buttonID" class="buttonID">
</FORM>
$('#buttonID')。单击(函数generateRGBKs(img){
var w=img.宽度;
var h=img.高度;
var rgbks=[];
var canvas=document.createElement(“canvas”);
画布宽度=w;
canvas.height=h;
var ctx=canvas.getContext(“2d”);
ctx.drawImage(img,0,0);
var pixels=ctx.getImageData(0,0,w,h).data;
//4用于请求3个图像:红色、绿色、蓝色和蓝色
//按那个顺序是黑色的。
对于(var rgbI=0;rgbI<4;rgbI++){
var canvas=document.createElement(“canvas”);
画布宽度=w;
canvas.height=h;
var ctx=canvas.getContext('2d');
ctx.drawImage(img,0,0);
var to=ctx.getImageData(0,0,w,h);
var toData=to.data;
为了(
var i=0,len=pixels.length;
i
下面是完整的故事,对于这样的问题,创建一个JSFIDLE将是非常棒的。这将使我们很容易尝试我们的答案,以确保他们的工作之前提交回来这里。因为我没有“profile.jpg”,所以我用一张随机的谷歌图片来填充它:对不起,我不知道有这样的事情存在。我总是很高兴向人们介绍伟大的事情。你是今天幸运的10000人之一:我正在尝试添加一个代码,以便对图像应用过滤,然后能够在html和服务器上使用新的颜色保存新图像,我正在使用struts。。。