Simplicity is so beautiful sometimes.
I think your right, that will get the effect I am looking for.
I still like what was given for the reading of pixels and the HSB
conversion though. I am going to try and implement that on another
idea I got while trying to figure this out. Thank you all for your
help, you all are amazing.
I am really glad I signed up for this list. I will post when I am done.
Best,
Karl
Sent from losPhone
On Mar 29, 2009, at 6:55 PM, "Ashim D'Silva"
<[email protected]> wrote:
If all you want is a visible loader, you might even try a blend mode,
like difference. Which you would then have to deal with stylistically,
but that would make the code required null.
If not, I have done this before to place text on an image and I used
the scaledBitmap system. The inaccuracies are forgivable for the most
part, but remember to only take the area that you're going to place
the loader on. That way it's not affected by dramatic changes in
colour in other parts of the image.
Cheers,
Ashim
--
The Random Lines
My online portfolio
www.therandomlines.com
2009/3/30 Juan Pablo Califano <[email protected]>:
Honestly, I'm not sure if I'm following you at this point...
However, I was not talking about *displaying* a grey-scaled image.
Just
using it as way to calculate each pixel's luminance / brightness.
Which in
this case will give you the same results as transforming to HLS and
reading
the L value.
If you want to manipulate brightness, saturation or hue, the only
sane way I
can think of is transfroming to HLS. There's not built-in way to do
it that
I'm aware of, so in this case you'dl have to use an AS routine
(I've pasted
one such routine I've used for this in the past).
But, since (apparently) you only want to know how dark / light a
given pixel
is (and then calculate an average), you can just copy the image to a
BitmapData object and convert it to grey scale. Reading a grey-
scaled pixel,
you can know how dark or light it is. Just read any of the RGB
channels
(they are equal, because it's a grey scaled image); 0 is black (the
darker value) and 255 is white (the lighter value).
The result is the same as transforming to HLS -- it may vary a bit
due to
rounding and such, but it's not a significative difference, I think.
This is faster because most of the "hard work" is done by a native
method of
the player, instead of Actionscript code.
Cheers
Juan Pablo Califano
2009/3/29 Karl DeSaulniers <[email protected]>
I actially wanted to get the density. How dark and how light. Not
necessarily black and white. Dark color or light color. I also
don't want to
convert any images. Now if it takes converting the image to
calculate, then
the user can never see this conversion of the photo. Just the
conversion of
the loader. If that makes sense. :)
Sent from losPhone
On Mar 29, 2009, at 3:41 PM, Ian Thomas <[email protected]> wrote:
Flash's smoothing may introduce irregularities, I guess.
But given that the original poster only wanted to know grey or
white,
surely it's a good enough approximation for that purpose?
Ian
On Sun, Mar 29, 2009 at 9:08 PM, Juan Pablo Califano
<[email protected]> wrote:
It's indeed much faster (five times faster than transforming to
grey
scale),
though the results I'm getting are incorrect (the other 2
methods seems
to
return consistently similar results, though trasnforming to HLS
takes
about
3200 ms for a 1152 x 864 image, and transform to grey scale
takes around
130
ms).
It could be the case that I'm doing it the wrong way, of
course... This
is
the code I'm using.
function getAverageFromScaledBitmap(src:DisplayObject):Number {
var dest:BitmapData = new BitmapData(1,1);
var mat:Matrix = new Matrix();
var sx:Number = 1 / src.width;
var sy:Number = 1 / src.height;
mat.scale(sx,sy);
dest.draw(src,mat,null,null,null,true);
var hls:Object = ColorUtils.RGBtoHLS(dest.getPixel(0,0));
return hls.l;
}
Cheers
Juan Pablo Califano
2009/3/29 Ian Thomas <[email protected]>
On Sun, Mar 29, 2009 at 8:14 PM, Juan Pablo Califano
<[email protected]> wrote:
As it's been said already, you could try converting to HLS and
the get
the
average luminance (brigthness). Here's a handy class to
convert from
RGB
to
HSL and viceversa.
http://www.dreaminginflash.com/2007/11/19/hls-to-rgb-rgb-to-hls/
Another approach, which might be faster (but you'd have to
test it to
see
if
that's true), could be transforming to bitmap to a grey scale.
You
would
then know how black / white each pixel is, so you could get
the average
value by adding the value of each pixel and dividing for the
total
number
of
pixels. Instead of reading the whole pixel value, you can just
read one
channel, because since it' s a grey scale, the three color
channels
will
be
equal.
If you're going to test any kind of average pixel value, it'd
be far
faster to take a bitmap copy of the frame scaled to 1 pixel x 1
pixel
(with smoothing on) - and just read the colour value of that
pixel...
HTH,
Ian
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders