خطأ في رفع الصورة عند استخدام أداة تغيير الحجم

إذا حاولت تحميل ملف PNG كبير يحتاج إلى تغيير حجمه ليتوافق مع max image size kb، فستظهر لك رسالة خطأ:

lib/discourse.rb:57:in `exec': convert: improper image header `/tmp/image20200221-243-17ldizm.jpg' @ error/png.c/ReadPNGImage/4294.

إذا قمت بتغيير امتداد الصورة إلى .jpeg، فسيتم تحميلها بنجاح!

كما تعمل بشكل صحيح أيضًا إذا قمت بإعادة تعيين max image size kb إلى القيمة الافتراضية، ولكن يبدو أن الصورة يتم إعادة تسميتها بصيغة jpeg بغض النظر عن ذلك.

إليك الصورة: Dropbox


تعديل: لقد لاحظت للتو ما يلي تحت خيار max image size kb:

الحد الأقصى لحجم تحميل الصورة بالكيلوبايت. يجب أيضًا تهيئة هذا في nginx (client_max_body_size) أو Apache أو الوكيل.

أعتقد أنني لم أقم بذلك - هل يمكن أن يكون هذا هو السبب؟ (هل توجد أمثلة حول مكان تعديل هذا؟)

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

يجب أن يكون من الممكن زيادة هذه القيمة عن طريق إضافة معلمة upload_size إلى ملف app.yml الخاص بموقعك. راجع Change the maximum attachment/upload size للحصول على التفاصيل.

5 إعجابات

لقد غيّرت max image size kb إلى 500k وتمت عملية الرفع، لكنني أتساءل عما إذا كان يجب أن تكون رسالة الخطأ المعروضة للمستخدمين ببساطة مثل: “فشل الرفع: حجم الصورة كبير جدًا، يرجى تغيير حجمها والمحاولة مرة أخرى”؟

5 إعجابات

رسالة الخطأ سيئة للغاية، رغم أنني أتساءل كم عدد الأشخاص الذين يغيرون هذا الإعداد من الأساس؟

5 إعجابات

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

أعتقد أنه مرتبط بإعداد “جودة تحويل PNG إلى JPG”؟ لقد مرّ وقت طويل منذ ذلك الحين، لكنني أعتقد أن سام عمل على أداة تغيير حجم الصور.

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


أظهرت بحث سريع سريعًا هذا - لذا يبدو أن أداة تغيير الحجم لم يتم تنفيذها بعد (لكنني كنت متأكدًا من أنها موجودة :thinking:)

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

كان هذا هو فهمي أيضًا… أنه يوجد تقليص حجم مُطبَّق يعالج الصور الكبيرة المرفوعة على الخادم.

تَعديل/تحديث:

تم وصف الأمر الآن بشكل جيد هنا:

5 إعجابات

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

4 إعجابات

لقد قمت بإصلاح المشكلتين هنا:

  1. حولت خط أنابيب تحسين الصور ملفات PNG إلى ملفات JPEG ثم حاولت تحسين ملفات JPEG الناتجة باستخدام عمليات مخصصة لصور PNG.

  2. تم إرجاع أخطاء ImageMagick إلى المستخدم، لكنها لم تكن مفيدة على الإطلاق (على سبيل المثال: convert: improper image header...)

8 إعجابات