From this code:
http://www.jhlabs.com/ip/BoxBlurFilter.java
I'm interested in the following snippet:
ta += ((rgb1 >> 24) & 0xff)-((rgb2 >> 24) & 0xff);
tr += ((rgb1 & 0xff0000)-(rgb2 & 0xff0000)) >> 16;
tg += ((rgb1 & 0xff00)-(rgb2 & 0xff00)) >> 8;
tb += (rgb1 & 0xff)-(rgb2 & 0xff);
Here's the code I've written in CF.
ta = ta +
BitAnd(BitSHRN(rgbRight,24),255)-BitAnd(bitSHRN(rgbLeft,24),255);
tr = tr +
BitSHRN(BitAnd(rgbRight,16711680)-BitAnd(rgbLeft,16711680),16);
tg = tg + BitSHRN(BitAnd(rgbRight,65280)-BitAnd(rgbLeft,65280),8);
tb = tb + BitAnd(rgbRight,255)-BitAnd(rgbLeft,255);
Unfortunately, this isn't working. Either I've written the code wrong,
or the original code is wrong. I don't understand what it's doing at
all other than it's SUPPOSED to cause a blur by doing something with
pixels to the left and right of a given pixel.
But the values of ta, tr, tg, and tb are as such:
ta=1275
tr=66296
tg=16777994
tb=957
Obviously... tr and tg are *WAY* out of the array length of the divide
array, which is 1280 for the blur i'm trying to do (horizontal and
vertical radius = 2, with 2 iterations)
Clearly, those numbers are wrong... but I don't really know why.
Rick
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Create robust enterprise, web RIAs.
Upgrade & integrate Adobe Coldfusion MX7 with Flex 2
http://ad.doubleclick.net/clk;56760587;14748456;a?http://www.adobe.com/products/coldfusion/flex2/?sdid=LVNU
Archive:
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:263892
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4