سؤال

وكيف يمكنني تحويل قيمة الرمادي (0-255) إلى قيمة RGB / التمثيل؟ فمن للاستخدام في صورة SVG، التي لا يبدو أن تأتي مع دعم الرمادي، فقط RGB ...

ملحوظة: هذا ليس RGB -> الرمادي، والذي أجبت في سؤال آخر، على سبيل المثال تحويل RGB إلى تدرج الرمادي / كثافة )

هل كانت مفيدة؟

المحلول

وهذا النهج سريعة وقذرة هو تكرار شدة تدرج الرمادي لكل مكون من RGB. لذلك، إذا كان لديك الرمادي 120، فإنه يترجم إلى RGB (120، 120، 120).

وهذا هو سريعة وقذرة لأن الإنارة الفعالة تحصل يعتمد على الإنارة الفعلية للR، G و B subpixels من الجهاز الذي تستخدمه.

نصائح أخرى

إذا كان لديك قيمة اللون الرمادي في متغير وتريد أن تنتج قيمة جديدة في شكل 0x00RRGGBB، ثم طريقة سريعة للقيام بذلك هي:

int rgb = grey * 0x00010101;

وأو ما يعادلها في اللغة التي اخترتها.

والتحويل من الرمادي إلى RGB بسيط. ببساطة استخدام R = G = B = قيمة الرمادي. والفكرة الأساسية هي أن اللون (كما يرى على شاشة من حيث RGB) هو نظام المضافة.

http://en.wikipedia.org/wiki/Additive_color

وهكذا مضيفا الأحمر إلى غلة أخضر أصفر. إضافة في بعض الأزرق إلى أن مزيج بكميات متساوية، وتحصل على لون محايد. كامل على [الأحمر والأخضر والأزرق] = [255 255 255] غلة الأبيض. [0،0،0] غلة مراقبة السوداء. القيم المتوسطة، عندما R = G = B جميعهم متساوون سوف تسفر عن الألوان المحايدة اسميا من مستوى معين من اللون الرمادي.

وهناك مشكلة بسيطة يعتمد على كيفية عرض اللون، فإنه قد لا يكون محايدا تماما. وهذا يعتمد على كيفية معايرة جهاز العرض (أو الطابعة). هناك أعماق مثيرة للاهتمام للعلم اللون يمكن أن نذهب إلى من هذه النقطة. سأتوقف هنا.

ورمادي على نطاق ويعني أن جميع القيم لها نفس الشدة. تعيين جميع القنوات (في RGB) مساوية لقيمة الرمادية وسيكون لديك لRGB أبيض وأسود صورة.

ولن وضع R، G، B وإلى نفس القيمة (قيمة المقياس الرمادية) لكل بكسل تحصل الظل الصحيح من اللون الرمادي؟

ويمكنك أيضا أن نلقي نظرة على حل لي <لأ href = "https://stackoverflow.com/questions/12004437/faster-assembly-optimized-way-to-convert-rgb8-image-to-rgb32-image "> أسرع التجمع الأمثل طريقة لتحويل الصورة إلى RGB8 RGB32 صورة . هو مجرد تكرار قناة الرمادية في جميع القنوات الأخرى.

وكان الهدف هو العثور على حل ممكن صام التحويل باستخدام إلى x86 / SSE.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top