Hi,
A minor optimization, but you can drop the Math.sqrt(). I.e.
   x^2 > y^2  == x > y

for all positive values of x and y.

Darren


> That's what I actually ended up doing, and it worked out pretty good:
> 
> private function getClosest (red1:Number, green1:Number, 
> blue1:Number):Number {
>        
>         var totalColors:Number = __palette.length;
>         var tempDistance:Number;
>         var closestColor:Number;
>        
>         for (var i:Number = 0; i < totalColors; i++) {
>             // first, break up the color to check
>             var red2:Number = (__palette[i] & 0xFF0000) >>> 16;
>             var green2:Number = (__palette[i] & 0x00FF00) >>> 8;
>             var blue2:Number = __palette[i] & 0x0000FF;
>            
>             // now, get the distance from the source
>             var tempD:Number = Math.sqrt ((Math.abs(red1 - red2) ^ 2) + 
> (Math.abs(green1 - green2) ^ 2) + (Math.abs(blue1 - blue2) ^ 2));
>            
>             if ((tempD <= tempDistance) || tempDistance == undefined) {
>                 tempDistance = tempD;
>                 closestColor = __palette[i];
>             }
>         }
>        
>         return closestColor;
>     }
> 
> 
> - Josh
> 
> 
> On Mar 16, 2006, at 7:59 PM, Ron Wheeler wrote:
> 
>> If a color can be treated as a point in a 3-d cube 256 units on  each
>> side, you can use the formula in this reference
>> http://www.uwm.edu/~ericskey/TANOTES/Ageometry/node10.html
>> to calculate the "distance" between 2 colors.
>>
>> I have not tried this but it would seem logical that this would work
>>
>> Ron
>>
>> elibol wrote:
>>
>>> K, here is some better math for getRGB, performance will probably be
>>> important:
>>>
>>>     return [c>>>16, c>>8&~0xFF00, c&~0xFFFFF00];
>>>
>>> You can also try using the ColorTransform or Color class to get  the rgb
>>> values, except they might be slower than getting the raw math right.
>>>
>>> M.
>>>
>>> On 3/15/06, Josh Buhler <[EMAIL PROTECTED]> wrote:
>>>
>>>> Thanks - I'll give it a shot and see how it goes.
>>>>
>>>>
>>>> - Josh
>>>>
>>>> On Mar 15, 2006, at 3:10 PM, elibol wrote:
>>>>
>>>>
>>>>> I tried comparing the hex values directly, but there were
>>>>> inaccuracies,
>>>>> maybe the same ones you've been having. I think since the value  of a
>>>>> particular color precedes with a 0 even when it's below 17(0F), the
>>>>> preceding 0 causes a shifting in the comparison. It would, for
>>>>> example,
>>>>> cause 0x000000 to seem farther to 0x123456 than 0x00FF00, where
>>>>> visually you
>>>>> can see clearly that black is closer to 0x000000.
>>>>>
>>>>> btw in my example, var a = 0x12345 where it should be 0x123456.
>>>>>
>>>>> The numbers hold to be accurate after correcting this typo.
>>>>>
>>>>> On 3/15/06, Josh Buhler <[EMAIL PROTECTED]> wrote:
>>>>>
>>>>>> I'm working on a project that requires that I take an uploaded 
>>>>>> image,
>>>>>> and convert it to use a limited palette of colors - around 5-10
>>>>>> colors.
>>>>>>
>>>>>> I've got the custom palette I have to work with stored in an  array,
>>>>>> and for each color in my image, I've got it finding the color  in the
>>>>>> array it's closest to numerically, but the results aren't exactly
>>>>>> what I'm looking for.
>>>>>>
>>>>>> Does anybody know of any formulas available for comparing multiple
>>>>>> colors and finding the ones that are the closest matches? I've  been
>>>>>> searching Google for a while, with no luck. Any good resources on
>>>>>> color formulas & such would be appreciated.
>>>>>>
>>>>>> - Josh
>>>>>> _______________________________________________
>>>>>> Flashcoders@chattyfig.figleaf.com
>>>>>> To change your subscription options or search the archive:
>>>>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>>>>>
>>>>>> Brought to you by Fig Leaf Software
>>>>>> Premier Authorized Adobe Consulting and Training
>>>>>> http://www.figleaf.com
>>>>>> http://training.figleaf.com
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> Flashcoders@chattyfig.figleaf.com
>>>>> To change your subscription options or search the archive:
>>>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>>>>
>>>>> Brought to you by Fig Leaf Software
>>>>> Premier Authorized Adobe Consulting and Training
>>>>> http://www.figleaf.com
>>>>> http://training.figleaf.com
>>>>>
>>>> _______________________________________________
>>>> Flashcoders@chattyfig.figleaf.com
>>>> To change your subscription options or search the archive:
>>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>>>
>>>> Brought to you by Fig Leaf Software
>>>> Premier Authorized Adobe Consulting and Training
>>>> http://www.figleaf.com
>>>> http://training.figleaf.com
>>>>
>>>>
>>> _______________________________________________
>>> Flashcoders@chattyfig.figleaf.com
>>> To change your subscription options or search the archive:
>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>>
>>> Brought to you by Fig Leaf Software
>>> Premier Authorized Adobe Consulting and Training
>>> http://www.figleaf.com
>>> http://training.figleaf.com
>>>
>>>
>>>
>>>
>> _______________________________________________
>> Flashcoders@chattyfig.figleaf.com
>> To change your subscription options or search the archive:
>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>> Brought to you by Fig Leaf Software
>> Premier Authorized Adobe Consulting and Training
>> http://www.figleaf.com
>> http://training.figleaf.com
> 
> 
> _______________________________________________
> Flashcoders@chattyfig.figleaf.com
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> 
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
> 
> 


_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to