سؤال

في Photoshop، يمكنك تعيين وضع مزج طبقة ليكون "Hue". إذا كانت تلك الطبقة، على سبيل المثال، مليئة باللون الأزرق، فيمكن أن تأخذ الطبقة أدناه ويجعلها كلها زرقاء أينما يوجد لون غير بيضاء.

أنا أتساءل ما يفعله في الواقع. إذا كان لدي طبقة خلفية مع pixel Aarrggbb وطبقة أعلى من ذلك، يتم تعيينها على مزيج الوضع "Hue" وهناك بكسل aarrggbb على تلك الطبقة، كيف هي تلك القيمتين مجتمعان لإعطاء النتيجة التي نراها؟

لا يسقط فقط RRGGBB من الطبقة أدناه. إذا فعلت ذلك هو اللون الأبيض والأسود كذلك. كما أنه لن يسمح باختلافات اللون من خلال.

إذا كان بكسل الخلفية 0xFF00FF00 وكل طبقة الثلاثي المقابلة هو 0xFF0000FF ثم افترض أن النتيجة النهائية ستكون فقط 0xFF0000FF لأن FF Blue يحل محل FF Green. ولكن، إذا كانت البكسل الخلفية 0x55112233، فإن بكسل لطبقة هوى هو 0xFF0000FF، كيف يأتي مع ظلال الأزرق الذي يأتي مع

السبب في أنني أسأل هو أن أرغب في أخذ صور مختلفة وتغيير لون الصورة برمجيا في تطبيقي. بدلا من تخزين 8 إصدارات مختلفة من نفس الصورة بألوان مختلفة، أود تخزين صورة واحدة ولونها حسب الحاجة.

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

المحلول

وجدت خوارزمية لتحويل RGB إلى HSV هنا: http://www.cs.rit.edu/~ncs/color/t_convert.html

بالطبع، في أسفل الصفحة التي تذكر أن كائن لون Java يحتوي بالفعل على طرق للتحويل بين RGB و HSV، لذلك اعتدت للتو ذلك.

نصائح أخرى

لقد كنت أبحث عن طريقة لتكرار وضع المزج في JavaScript / Canvas لكنني خرجت فقط مع وضع عامل تصفية / مزيج "تلوين" فقط. (أمثلة أدناه)

تلوين الخوارزمية

  1. تحويل الألوان من RGB إلى HSL؛
  2. قم بتغيير قيمة اللون إلى المراد المطلوب (في حالتي 172 أو 0.477)؛
  3. عودة التحديث HSL إلى RGB

    ملاحظة: هذا موافق على سطح المكتب ولكنها بطيئة بشكل ملحوظ على الهاتف الذكي، وجدت.

    يمكنك رؤية الفرق من خلال مقارنة هذه الصور الثلاثة. الأصل:

    الصورة الأصلية

    تلوين:

    نتيجة خوارزمية

    glogorithms fireworks "مزيج هوى" (الذي أعتقد أنه هو نفسه مثل فوتوشوب):

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