ما هي طريقة إستخلاص اللون من الصورة بالجيكوري

السلام عليكم

أبحث عن كود من أجل إستخلاص الألوان من صور المواضيع تلقائيا ، بحيث يتغير لوم الخط (مثلا )تبعا للون الصورة كما في المثال :

والأفضل لو كان بالجيكوري

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

كنت سأقول لك استخدم عنصر Canvas وحلل الصورة و ..، بما أنك تريدُ حلًا سهلًا بـJQuery استخدم هذه المكتبة (إضافة لـJquery):

هذا الكود يعمل فقط إذا كانت الصورة بشكل base64

هل توجد طريقة أخرى

هذا الكود يعمل فقط إذا كانت الصورة بشكل base64

لا، تعمل مع جميع عناصر img الروابط وغيرها؛ جربتها الآن.

لا يعمل بالشكل الصحيح يا @يوسف سيد يعطي القيمة الخطأ

هذا مثال :

الخطأ أنّه لا يسمح لك استخدام الصورة المتصفح الحديث يطلب أن يُسمح لك من قبل الخادم قبل تعديل الصورة أو الوصول لمعلوماته يجب أن يرسل الخادوم شيء مثل "Access-Control-Allow-Origin *" في ترويسة الـHTTP عمومًا لن تحدث المشكلة في موقع برمجتَه وكانت الصورة على نفس النطاق [1] :

سيظهر خطأ مثل:

Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data.

لهذا الإضافة ترجع قيمة صفرية عندما يحدث هذا الخطأ، جربها في متصفح قديم أو عطل الأمان في متصفحك؛ وستعمل بدون أي مشاكل، إذا كنت ستعرض الصور من خادمٍ لك لا تصدع رأسك بهذه المشكلة.

ليس شرطا ، أظنني وجدت عملا لأحدهم يعمل برابط img

تعمل لأنّ الخادوم في حالة هذه الصورة أرسل:

access-control-allow-origin:*

في مثالك هذا مع الصورة السّابقة في المثال الذي لم يعمل لن تعمل أيضًا، أنظر نفس الصورة تعمل في المثال الأول -فقط أضفتُ crossorigin="anonymous" إلى وسم الصورة كما هي موجودة في مثالك أيضًا كي أطلب من المتصفح والخادم استخدام الـCross Domain راجع الرابط في تعليقي السابق-:

لكن إذا جعلتها الصورة السّابقة لن تعمل.

تم بتحويل الصورة الي base64

أنا أتعامل بروابط img تلقائية وليس يدويا

  • الطريقة الأخرى عد للحل الأول من رد @يوسف سيد وحلل الصورة عبر Canvas واحسب نسبة اللون الأكثر إنتشاراً في الصورة.

رابط المكتبة التي وضعها @يوسف سيد تحلل الصورة و نتيجتها لون قيمته متوسط ألوان الصورة، و جربتها مع base64 و رابط مباشر للصورة، و كلاهمها يعمل بشكل سليم

في نفس رابط المكتبة للجواب الاساسي في stackoverflow، تحدثوا عن مكتبة أخرى تحلل الصورة و نتيجتها لون قيته أكثر لون مستخدم في الصورة، و هي مكتبة Color Thief و رابطها

لا تعمل بشكل صحيح

وبخصوص مكتبة color thief فهي كذلك تعمل ب base64

مثال حي :

@يوسف سيد @ahmedsaoud31 هل من طريقة لتحويل روابط الصور غلى base64 تلقائيا بالجيكوري

يوجد الكثير من الحلول .. منها ارسمها في عنصر Canvas ثم استخدم الدالّة toDataURL في العنصر ببساطة.

شكرا لك على تفاعلك

-1

حمل الصورة وارفعها على الخادم الخاص بك لقد بحث في النت لم اجد الا ان تقوم بتعطيل عن طريق المتصفح

لكروم :

واعتقد ان هذا ليس بحل