diff --git a/js/BitmapData.js b/js/BitmapData.js index 356c326..49243b2 100644 --- a/js/BitmapData.js +++ b/js/BitmapData.js @@ -407,29 +407,47 @@ function BitmapData(width, height, transparent, fillColor, canvas) { }; this.copyChannel = function(sourceBitmapData, sourceRect, destPoint, sourceChannel, destChannel) { - var sourceColor, sourceRGB, rgb; - var redChannel = BitmapDataChannel.RED; - var greenChannel = BitmapDataChannel.GREEN; - var blueChannel = BitmapDataChannel.BLUE; + var sourceOffset = 0; + var destOffset = 0; + + switch(sourceChannel){ + case 1: + sourceOffset = 0; + break; + case 2: + sourceOffset = 1; + break; + case 4: + sourceOffset = 2; + break; + case 8: + sourceOffset = 3; + break; + } + + switch(destChannel){ + case 1: + destOffset = 0; + break; + case 2: + destOffset = 1; + break; + case 4: + destOffset = 2; + break; + case 8: + destOffset = 3; + break; + } + var sourcepos; + var sourcedata = sourceBitmapData.imagedata.data; + var data = this.imagedata.data; for (var y=0; y