تطبيق تلقائي لعامل التحجيم على الصور الملصقة من الحافظة

أنا أستخدم شاشة HiDPI بعامل قياس 150%. في كل مرة أقوم فيها بإنشاء لقطة شاشة ولصقها في Discourse، يكون كل شيء كبيرًا جدًا. أحتاج إلى تطبيق عامل قياس يدويًا على الصورة لجعلها تبدو جيدة.

لنفترض أنني أنشأت لقطة شاشة للصندوق التالي الذي يبلغ حجمه 110 × 110 بكسل.

عندما أقوم بلصق لقطة الشاشة هذه (Ctrl+V) في المنشئ، أحصل على صورة بحجم 167 × 167 بكسل.


![image|167x167](upload://fWfpRZXtBMVBXjcMTAPOwtG5bND.png)

من الناحية المثالية، أحصل على صورة بالحجم الصحيح دون الحاجة إلى تذكر النسبة المئوية الصحيحة لتصغير الصورة (وهي 66٪ في حالتي).


![image|167x167, 66%](upload://fWfpRZXtBMVBXjcMTAPOwtG5bND.png)

أرى خيارين لذلك. إذا كان عامل القياس لا يساوي 1، فـ:

  1. أضف تلقائيًا عامل القياس الصحيح إلى علامة Markdown للصورة
    ![image|167x167, 66%](...)

أو

  1. أضف عامل القياس الصحيح إلى صندوق أدوات الصورة في نافذة المعاينة
    image

يمكن حساب عامل القياس في JavaScript:

Math.floor(100 / window.devicePixelRatio)
6 إعجابات

هذه فكرة رائعة، أنا أعاني من هذا الأمر طوال الوقت أيضًا.

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

أيضًا، فيما يتعلق بإعادة التنفيذ، لا أرى سببًا لعدم قدرتنا على القيام بكل من 1 و 2.

4 إعجابات

نعم، ستكون نتيجة إيجابية خاطئة عند لصق صورة ليست لقطة شاشة. أتساءل ما الذي يتم إدراجه بشكل متكرر أكثر، لقطات الشاشة أم الصور الأخرى. :thinking:

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

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

على أي حال، البدء بالخيار 2 سيتجنب النتائج الإيجابية الخاطئة، وسيوفر فقط حجمًا افتراضيًا بديلاً أفضل في المعاينة.

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

يبدو أن أدوات لقطة الشاشة تقوم بتشفير بعض المعلومات حول DPI في ملفات PNG. على سبيل المثال، إذا قمت بتحميل لقطة شاشة من بيئة macOS عالية الدقة الخاصة بي إلى https://www.metadata2go.com/، أرى

إذا قمت بإيقاف تشغيل HiDpi، فتبدو حقول البيانات الوصفية هذه وكأنها تختفي من الملف.

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

لقد صادفت أيضًا هذا المستودع والذي قد يكون مفيدًا.

إعجابَين (2)

أنا أبحث أيضًا في تحليل البايتات القليلة الأولى من ملفات PNG لـ ملفات PNG المتحركة عن بُعد تفقد حركتها، لذلك لدينا حالات استخدام متعددة لخطاف هنا.

إعجابَين (2)

أنا أستخدم Spectacle على لينكس ويبدو أنه لا يضيف أي شيء إلى البيانات الوصفية.

الكود من هذا الملخص يُرجع false لصورة شاشة أنشأتها على نظام لينكس الخاص بي بعامل قياس 150%. تبدو قطعة pHYs لهذه الصورة كالتالي:

{ xDpu: 3780, yDpu: 3780, xDpi: 96, yDpi: 96, unit: 'meter' }
3 إعجابات