كيفية تجنب أي نوع من إعادة الضغط على الصور؟

نحن منتدى متخصص في التصوير الفوتوغرافي.

نرغب في الحد من حجم الصور المرفوعة إلى 1.2 ميجابايت مع تجنب أي نوع من إعادة الضغط عندما تكون الصورة متوافقة مع هذا الحد.

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

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

مع إضافة خيارات محرر الصور (مؤخرًا)، تفاقمت الأمور. حتى الصور التي يقل وزنها عن 1.2 ميجابايت يتم إعادة ضغطها.

نرغب في تجنب أي نوع من التدخل في صور المستخدمين (فهي مسؤوليتهم ضبط الصورة بما يناسبهم مع الالتزام بحدود الوزن والحجم).
على الأقل في الصور التي تلتزم بالحدود المحددة.

كيف يمكن أفضل إعداد الخيارات للحصول على هذا السلوك؟

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

يميل المنتدى إلى ضغط الصور بشكل مفرط، مما يعطي نتائج مثل 200 كيلوبايت و900 بكسل في الجانب الطويل.

أعتقد أنك ستحتاج إلى إضافة (plugin) لتجاوز هذه السلوكيات.

أو أن يقوموا برفعها إلى مكان آخر ثم إنشاء رابط.

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

راجع Azure Blob Storage Plugin و Video Upload to YouTube and Vimeo using Theme Component كمثالين. ستحتاج إلى تحديد مكان استضافة الصور وكتابة مكون ثيم مشابه.

ممم… نريد الصور على خادمنا لأننا لا نتحكم في المواقع الأخرى التي قد تفقد فيها الصور.

لقد افترضت أننا لن نتمكن من تعطيل معالجة الصور تمامًا.

نحن سعداء إذا لم يتعامل النظام مع الصور التي تلتزم بالحدود (1.2 ميجابايت في حجم الملف و2048 بكسل في الجانب الطويل)، وإذا أمكننا ضبط إعادة الضغط قليلاً للصور التي تتجاوز هذه الحدود.

أعتقد أنني تمكنت من تحقيق الهدف الأول: لقد حددت حد حجم الملف بـ 1230 كيلوبايت، وحد العتبة في مُركّب الصور بنفس الحجم بالبايت.

الآن يبدو أن الصور الأصغر من هذا الحجم لا يتم إعادة ضغطها (كما كان يعمل في بعض الإصدارات السابقة، ويبدو أن مُركّب الصور أُدخل مؤخرًا).

ولكن عند محاولة تحميل صورة مثلاً بـ 2100 بكسل و3 ميجابايت، تحصل على نتائج غريبة.
فهي تُعاد تصغيرها إلى حوالي 900 بكسل و200 كيلوبايت، وأحيانًا 1024 بكسل و500 كيلوبايت…
تفقد الصورة تفاصيلها تمامًا وتُتأثر تدرجات الألوان.

لقد قمت بضبط حدود مُركّب الصور إلى 1920 بكسل وجودة ضغط JPEG إلى 90، لذا كنت أتوقع أن يعيد ضغطها إلى هذا الحجم (لقد اختبرت ذلك مع صور يمكن ضغطها بجودة 90 وبأبعاد 1920 بكسل بسهولة ضمن حد 1.2 ميجابايت).
ولكن النظام يواصل ضغطها أكثر من اللازم.

هل قمت بتعديل إعدادات الموقع المتعلقة بالحد الأقصى لحجم الصور وعرضها وارتفاعها؟ يجب أن يكون هذا هو أول ما تبحث فيه.

عذرًا على التأخير. لم أدرك الإجابة.

نعم، كما شرحت سابقًا، فقد وضعنا حدًا أقصى يبلغ 1.2 ميجابايت وحدًا أقصى للدقة يبلغ 4 ميجابكسل.

عندما لا تتوافق الصورة مع هذا الحد، يقوم النظام بضغطها بشدة، وأحيانًا بنتائج جنونية مثل 600 بكسل أو 1000 بكسل عرضًا لصورة تم تحميلها بعرض 1920 أو 2048 بكسل.
الفقد في الجودة واضح جدًا للعين المدربة: فقدان الأنسجة، الهالات، سوء تدرج الألوان…

مع الترقيات الأخيرة، حتى الصور التي تتوافق مع الحدود تحصل على “تحسين” للنظام ويتم ضغطها مع فقدان الجودة.

لقد قمنا بضبط “جودة إعادة ضغط ملف JPG الأصلي” وضبطها على 100٪ على أمل منع إعادة الضغط. يبدو أن هذا يعمل، لكنني لست متأكدًا مما إذا كان يتم إعادة الضغط على أي حال (ولكن على الأقل لا يوجد فقدان ملحوظ في الجودة).

تحتاج إلى تعديل composer media optimization image bytes optimization threshold لتعطيل تحسين حجم العميل للصور التي تقل عن هذا الحجم. الافتراضي ينطبق على الصور التي تزيد عن 500 كيلوبايت، لذا تريد زيادة هذا الإعداد إلى 1.2 ميجابايت.

هل يجب علينا تحسين وصف إعدادات الموقع هذه لجعله أوضح كيف تعمل الأشياء؟ :thinking:

أعتقد ذلك، لكن كتابة النصوص ليست من اختصاصي.

حالياً هو

الحد الأدنى لحجم ملف الصورة لتشغيل التحسين من جانب العميل

ربما

الحد الأدنى لحجم ملف الصورة لتشغيل تغيير الحجم / الضغط قبل التحميل

؟

ربما

سيتم تغيير حجم الصور الأكبر من هذا وضغطها بواسطة العميل