إزالة البيانات الوصفية من صور PNG
02 قصة خصوصية مختلفة عن JPEG
معظم ملفات PNG ليست صور كاميرا - إنها لقطات شاشة أو رسومات أو مخرجات من أداة تحرير. هذا يغيّر
الخطر الفعلي: نادرًا ما تحمل ملفات PNG بيانات GPS، لأن لقطات الشاشة أصلًا لا تملك GPS كاميرا لتسجيله.
ما تحمله هو "قطع مساعدة" - حقول نص حر tEXt/iTXt (أحيانًا اسم البرنامج الذي
أنشأ الملف، أو ملاحظات من أداة تحرير)، وملف ألوان iCCP، وأحيانًا كتلة eXIf
حقيقية إذا جاء PNG من كاميرا أو هاتف بدلًا من لقطة شاشة.
تعمّق أكثر: لماذا لا يزال يُتحقَّق من علامة نهاية PNG بحثًا عن بيانات مُلحَقة
لدى PNG كتلة نهاية ملف محددة، IEND، تمامًا كما لدى JPEG علامة نهاية صورة - وتنطبق
نفس حيلة الملفات متعددة الأشكال: البيانات المُلحَقة بعد IEND غير مرئية لعارض صور
عادي، لكنها لا تزال موجودة فعليًا في الملف. تتجاهلها إعادة البناء الكاملة للبكسلات دون قيد
وشرط، وهو نفس الضمان الموصوف في صفحة المقارنة، بغض
النظر عمّا كان مختبئًا فعليًا هناك.
لماذا PNG هو التنسيق الذي يستهدفه الإخفاء الرقمي فعليًا
PNG بلا فقدان - كل قيمة بكسل تحفظها هي القيمة نفسها التي تُقرأ لاحقًا، دون أن تُنعِّم إعادة الضغط أي شيء. هذه الخاصية بالذات هي ما يجعل إخفاء البيانات في أدنى بتات قيم البكسل (الإخفاء الرقمي الكلاسيكي LSB) ينجو تمامًا من خطوة ساذجة تكتفي بـ"إزالة البيانات الوصفية فقط" - البكسلات نفسها لا تتغيّر أبدًا، فقط البيانات الوصفية المحيطة بها تتغيّر. تخفيف الإخفاء الرقمي الاختياري في هذه الأداة (تصفير أدنى البتات لكل بكسل) موجود لهذا السبب بالضبط، وهو أكثر أهمية بكثير لـPNG منه لـJPEG، حيث تُخِلّ إعادة الضغط بهذه البتات أصلًا كأثر جانبي.
إعدادات الضغط المسبقة في تنسيق بلا فقدان
بما أن PNG لا يملك مفهوم "الجودة" كما في JPEG، تتحكم إعدادات الضغط المسبقة هنا بدلًا من ذلك في شدة الترشيح وضغط Deflate - يستثمر "مضغوط للغاية" مجهودًا أكبر لإيجاد ترميز أصغر لنفس البكسلات بالضبط، وليس بكسلات أقل جودة. يزيل كل إعداد مسبق 100% من البيانات الوصفية رغم ذلك.