علامة مائية على الصورة

:information_source: الملخص يضيف تلقائيًا علامات مائية إلى الصور التي يرفعها المستخدمون
:hammer_and_wrench: المستودع GitHub - Arkshine/discourse-watermark-image · GitHub
:question: دليل التثبيت كيفية تثبيت سمة أو مكون سمة
:open_book: جديد في سمات Discourse؟ دليل المبتدئين لاستخدام سمات Discourse

تثبيت مكون السمة هذا

الوصف

يضيف هذا المكون السمة علامات مائية تلقائيًا إلى الصور التي يرفعها المستخدمون. يمكنك استخدام صورة أو رمز استجابة سريعة (QR code) كعلامة مائية، مع خيارات تخصيص واسعة للموضع والمظهر وأنماط التوزيع.

يوفر المكون تحكمًا دقيقًا من خلال إعدادات الفئات ومجموعات المستخدمين، مما يسمح لك بتخصيص سلوك وضع العلامات المائية وفقًا لاحتياجات مجتمعك.

يرجى مراجعة قسم الملاحظات الهامة قبل التنفيذ.

الميزات

  • معالجة عالية الأداء باستخدام WebAssembly و Web Workers
  • دعم شامل لتنسيقات الصور (PNG, JPEG, BMP, ICO, TIFF, WEBP)
  • توليد ديناميكي لرموز QR كعلامات مائية
  • خيارات حجم مرنة (نسبية أو مطلقة)
  • نظام تحديد مواقع متعدد الاستخدامات
  • تخصيص متقدم للمظهر (الشفافية، الدوران، المقياس، الهوامش، إلخ)
  • أوضاع دمج متعددة
  • خيارات توزيع الأنماط (واحد، شبكة، قطري، عشوائي)
  • إعدادات خاصة بالفئات ومجموعات المستخدمين
  • معاينة مباشرة في لوحة الإعدادات

الإعدادات

الإعداد الوصف
image الصورة المراد استخدامها كعلامة مائية.
التنسيقات المدعومة: PNG, JPEG, BMP, ICO, TIFF, WEBP.
الافتراضي: ""
size_mode كيفية حساب حجم العلامة المائية:
- relative: الحجم نسبي لعرض الصورة المستهدفة.
- absolute: يتم تطبيقها بحجمها الأصلي.
الافتراضي: "relative"
relative_width عرض العلامة المائية نسبيًا لعرض الصورة المستهدفة (بالنسبة المئوية).
ينطبق فقط عند تعيين وضع حجم العلامة المائية على relative.
النطاق: 1-100
الافتراضي: 10
absolute_scale عامل المقياس لحجم العلامة المائية الأصلي (يُستخدم فقط في الوضع المطلق). الحد الأدنى: 0.01
الافتراضي: 1
max_size الحد الأقصى للحجم كنسبة مئوية لأبعاد الصورة. النطاق: 1-100
الافتراضي: 50
position موضع العلامة المائية: top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right
الافتراضي: "bottom-right"
margin_x الهامش الأفقي من الحافة (كنسبة مئوية من الصورة المستهدفة)
الافتراضي: 0
margin_y الهامش الرأسي من الحافة (كنسبة مئوية من الصورة المستهدفة)
الافتراضي: 0
opacity شفافية العلامة المائية. النطاق: 1-100
الافتراضي: 100
rotate زاوية الدوران.
النطاق: -360 إلى 360 درجة
الافتراضي: 0
blend_mode كيفية دمج العلامة المائية مع الصورة: normal, overlay, over, atop, xor, plus, multiply, burn, difference, soft_light, screen, hard_light, dodge, exclusion, lighten, darken.
الافتراضي: "normal"
pattern نمط تكرار العلامة المائية: single, grid, diagonal, random
الافتراضي: "single"
pattern_allow_partial السماح بعلامات مائية جزئية عند حواف الصورة
الافتراضي: true
pattern_max_count الحد الأقصى لعدد تكرارات العلامة المائية (0 لغير محدود)
الافتراضي: 50
pattern_spacing المسافة بين العلامات المائية المتكررة (كنسبة مئوية من الصورة المستهدفة)
الافتراضي: 15
qrcode_enabled تمكين العلامة المائية برمز QR
الافتراضي: false
qrcode_text النص المراد ترميزه في رمز QR. يدعم العلامات: {homepage}, {username}, {topic_url}
الافتراضي: ""
qrcode_color لون رمز QR (hex أو متغير CSS)
الافتراضي: "var(--primary)"
qrcode_background_color لون خلفية رمز QR (hex أو متغير CSS)
الافتراضي: "var(--secondary)"
qrcode_quiet_zone عرض الحد الأبيض حول رمز QR (0-10 وحدات)
الافتراضي: 2
qrcode_error_correction مستوى تصحيح الأخطاء: Low (~7%), Medium (~15%), Quarter (~25%), High (~30%)
يمكن العثور على مزيد من المعلومات حول مستويات تصحيح الأخطاء here.
الافتراضي: "Medium"
categories الفئات التي يجب تطبيق العلامة المائية عليها.
الافتراضي: ""
groups المجموعات التي يجب تطبيق العلامة المائية عليها.
الافتراضي: "0"
skip_small_images تخطي وضع العلامة المائية إذا كانت الصورة أقل من min_image_dimensions.
الافتراضي: false
min_image_dimensions الأبعاد الدنيا المطلوبة (العرض × الارتفاع)
الافتراضي: "200x200"
allow_non_supported_uploads السماح بمتابعة رفع الصور حتى لو لم يكن التنسيق مدعومًا
الافتراضي: false

أنواع العلامات المائية

صورة

يدعم المكون تنسيقات صور متعددة: PNG, JPEG, BMP, ICO, TIFF, و WEBP.
راجع قسم الأسئلة الشائعة للحصول على معلومات مهمة حول قيود دعم التنسيقات.

رمز QR

توليد رموز QR ديناميكية بمحتوى قابل للتخصيص باستخدام هذه المتغيرات:

  • {homepage} - عنوان URL للصفحة الرئيسية
  • {username} - اسم المستخدم
  • {topic_url} - عنوان URL للموضوع

مهم: عند تصميم علامات مائية برمز QR، ضع في اعتبارك التباين والحجم. قد تجعل نسب التباين الضعيفة أو التنسيق المفرط رموز QR غير قابلة للقراءة. قم دائمًا باختبار علاماتك المائية برمز QR باستخدام تطبيقات المسح.

معاينة فورية

تتضمن لوحة الإعدادات ميزة معاينة فورية، مما يسمح لك برؤية كيفية تأثير إعدادات العلامة المائية على صورة عينة فورًا.
توفر نافذة المعاينة عدة ميزات تفاعلية:

  • نافذة معاينة قابلة للتعديل في الحجم وحركتها
  • خيار تحميل صورة عينة عشوائية
  • دعم لرفع صورك التجريبية الخاصة من جهازك

على سطح المكتب، تفتح تلقائيًا. يمكنك أيضًا فتحها من الزر الموجود في أسفل الصفحة:

مزيد من الصور



:warning: ملاحظات هامة

  • لا يتم الاحتفاظ بالصور الأصلية
    يتم تطبيق العلامات المائية قبل الرفع إلى الخادم، ولا يتم الاحتفاظ بالصور الأصلية. قم باختبار إعدادات علامتك المائية بدقة قبل النشر في بيئة الإنتاج.

  • إذا كنت تختبر في لوحة الإدارة، فكن حذرًا من عدم التحقق من إعداداتك فورًا. أنصحك بإنشاء مجموعة أو فئة لتكون في مأمن من الأخطاء.

الأسئلة الشائعة

لماذا تقتصر تنسيقات الصور؟

بينما يحول Discourse جميع الملفات المرفوعة إلى JPEG، يحدث وضع العلامة المائية في هذا المكون السمة قبل الرفع على التنسيق الأصلي، باستخدام مكتبات معالجة صور محددة. بينما يمكن وضع العلامات المائية بعد الرفع، إلا أنه سيتطلب دورات متعددة من الرفع/التحميل وسيؤثر على تجربة المحرر. لا أزال أستكشف تحسينات لهذه العملية.

لماذا لا يتم دعم وضع العلامات المائية بالنص؟

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

خارطة الطريق

قد تتضمن خطط التطوير المستقبلية:

  • ملفات تعريف متعددة للعلامات المائية [1]
  • الاحتفاظ بالصور الأصلية [2]
  • وضع العلامات المائية بعد الرفع

الاعتمادات

يعتمد هذا المكون السمة على:


  1. مدخل الرفع مدعوم جزئيًا مع نوع إعدادات الكائن – لا يمكن القيام به في مكون سمة حاليًا. ↩︎

  2. قد يتطلب تطوير إضافة. ↩︎

24 إعجابًا

هذه هي النسخة الأولى، وأتوقع وجود ميزات مفقودة. أتطلع إلى أي ملاحظات! :+1:

7 إعجابات

شكرا على المكون. هل يعالج هذا المكون الصور؟ هل يضغط هذا المكون الصور إلى حجم أفضل من الأصلي؟

5 إعجابات

لا يقوم المكون بإجراء أي تعديلات أو ضغط بخلاف تطبيق العلامة المائية.

يقوم Discourse بمعالجة الصورة مسبقًا أولاً (باستخدام مكتبة squoosh) → يتم تطبيق العلامة المائية → يتم تحميل الصورة إلى الخادم. هذه هي طريقة عملها.

6 إعجابات


في المرة الأولى التي تفتح فيها منشورًا وتعدله، لا يمكنك وضع علامة مائية عليه، تحتاج إلى نشره ثم النقر فوق تعديل المنشور وتحميل صورة لوضع علامة مائية عليه.
الموضوع المستخدم هو FKB Pro - Social theme - #375 by MihirR

إعجابَين (2)

هل تقصد أنه إذا فتحت/عدلت منشورًا موجودًا للمرة الأولى وقمت بتحميل صورة، فلن تكون هناك علامة مائية. هل هذا صحيح؟ هل يمكنك تكرار ذلك في كل مرة؟ هل ترى أي خطأ في وحدة تحكم المتصفح؟

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

قد تكون هناك ميزة زر لوضع علامة مائية على صورة محددة يدويًا. هل سينجح ذلك معك؟

إن الصور التي تم تحميلها بعد إنشاء منشور جديد لا تحتوي على علامة مائية. أما الصور التي تم تحميلها بعد الدخول إلى المنشور بعد نشره والنقر على “تعديل” فتحتوي على العلامة المائية.

بالنسبة لزر النشر، أستخدم Compose Center - #13

هل يمكنك عمل فيديو سريع، من فضلك؟ سيكون من المفيد رؤية وفهم ما يحدث.

إعجاب واحد (1)

3 إعجابات

شكراً لصبرك! لقد وجدت المشكلة. يجب أن يتم إصلاحها الآن! :+1:

3 إعجابات

حدث هذا الخطأ عند تثبيت هذا المكون

Đã xảy ra lỗi: Error creating upload asset: worker_photon_wasm. Original filename Sorry, the file you are trying to upload is not authorized (authorized extensions: jpg, jpeg, png, woff, woff2, svg, eot, ttf, otf, gif, js, dwg).

إعجاب واحد (1)

هذا غريب. ما هو إصدار Discourse الخاص بك؟
يمكنك محاولة إضافة امتداد wasm إلى القوائم المسموح بها، ولكنه يعمل بشكل جيد في تثبيتي المحلي واثنين من تثبيتات الإنتاج دون أي تغييرات. :thinking:

إعجاب واحد (1)

سأقدم لك بعض الملاحظات، لا أعرف ما يجري، ولكن يبدو أن المستخدمين الصينيين ليس لديهم علامات مائية على صورهم التي تم تحميلها.

لكنني أستخدم حسابًا تم إنشاؤه حديثًا مع تشغيل وضع عدم التتبع هذا وهو يعمل، لذلك لا أعرف ما هي المشكلة.

أحيانًا يعمل، وأحيانًا لا.

الصور التي تم إنزالها هي .jpeg .png ولكن مثل الصورة الموجودة في الفيديو، أقوم بنسخ الصورة وتحميلها وتكون عليها علامة مائية، لذلك لا أعرف ما هي المشكلة.

شكرا على ملاحظاتك!

بالنسبة لك، بغض النظر عن كيفية محاولتك، فإن الأمر يعمل دائمًا، أليس كذلك؟

هل يمكنك أن تطلب من بعض المستخدمين لديك التحقق من وحدة تحكم المتصفح إذا حدث ذلك ونسخ أي رسالة خطأ يرونها إليك؟ أيضًا، سواء كانوا يستخدمون جهازًا محمولاً (أندرويد، آيفون، إلخ) - إذا كان بإمكانهم شرح ما فعلوه بالضبط لمعرفة ما إذا كان ذلك يمكن أن يساعد، فسيكون ذلك موضع ترحيب.

لا يبدو أنه مشكلة في الصورة نفسها إذا كان بإمكانك وضع علامة مائية على الصورة بنفسك لاحقًا. ما تبقى هو إما خطأ في الكود مثل المشكلة السابقة، أو خطأ في عملية وضع العلامات المائية. لسوء الحظ، لا يمكنني تكرار ذلك مهما فعلت.

سأعمل على تحديث المكون لاحقًا للتأكد من التقاط أي أخطاء وعرضها للمستخدم.

مرحباً، شكراً لك على إنشاء هذه المكونة.
عندما حاولت تحميل صورة العلامة المائية، ظهر هذا الخطأ، جربت JPEG و Webp أيضاً، ولكن لم أنجح.

منتدى Discourse الخاص بي محدث

إعجاب واحد (1)

مرحباً @LaptechInfo

هذا غريب. في هذه المرحلة، يجب ألا يقوم TC بأي شيء. هذا هو إعداد التحميل القياسي.
هل يمكنك النظر في وحدة تحكم المتصفح ومعرفة ما إذا كنت ترى أي رسائل خطأ؟

هل من الممكن تقديم صورة تفشل حتى أتمكن من الاختبار من جانبي أيضًا؟

إعجاب واحد (1)

مرحباً، لقد جربت العديد من الصور عشوائياً، لكن لم تعمل أي منها.
أنا لست مبرمجاً، وليس لدي أي معرفة بأي لغات حاسوبية.
جرب هذه الصورة، لقد تعبت.
laptechinfo webp.zip (558 Bytes)
watermark.zip (257.7 KB)

@Arkshine

إعجاب واحد (1)

شكرًا! هل يمكنك أيضًا عرض محتويات وحدة التحكم (Console) الخاصة بك؟ علامة التبويب التالية. أعتقد أنها قد تساعد.

تعديل: أعتقد أنني أستطيع تكرار ذلك، دعني أرى، وسأعود إليك قريبًا!

علامة تبويب وحدة التحكم


@Arkshine

@LaptechInfo شكرا! هناك خطأ في Discourse من طلب سحب (PR) بالأمس. لقد أنشأت موضوعًا: Can't upload image in settings. :+1:

3 إعجابات