יום ראשון, 18 ביולי 2010

קוד פתוח, והפעם - כיצד להתאים את צבע הטקסט לרקע שלו?

כשרוצים להכין אפליקציה שתחליף צבעים או תאפשר החלפת רקעים (כמו למשל הכנסת תמונה), אחת הסוגיות הבעייתיות היא צבעי הטקסטים שנמצאים מעל הרקע המשתנה. הקו המנחה הוא טקסט כהה על רקע בהיר והפוך כמובן.
יש כאן בעצם שתי בעיות:
1. כיצד לדעת את צבע הרקע?
2. כיצד לדעת אם צבע הרקע בהיר או כהה?

לפתרון בעיה זו הכנתי קובץ דוגמא ומחלקה שעושה את כל החישובים בצורה אוטומטית.

המדיניות שלנו: אנחנו בעד שיתוף ונשמח לקבל בחזרה רעיונות נוספים, שיפורים של הקוד או תוספות אליו, פונקציות נוספות וכו'. כמובן שנשמח אם תפנו אנשים אל הבלוג הזה בתמורה, אבל גם זה לא חובה...

המחלקה מכילה שתי פונקציות שהאחת מגלה את הצבע של אובייקט גרפי כלשהו והשנייה מבררת האם צבע מסויים כהה או בהיר.


הסבר על הפונקציות:

var resultColor:uint = ColorTools.averageColor(myDisplayObject);

הפונקציה מקבלת אובייקט גרפי כלשהו (מוביקליפ, תמונה וכו') ומחזירה את הצבע הממוצע של האוביקט כולו.

------------------------

var bool:Boolean = ColorTools.isColorBright(myColorTransform);

הפונקציה מקבלת אובייקט צבע ומחזירה משתנה בוליאני שמציין האם הצבע בהיר או כהה.