سؤال

هل هناك نهاية exif / نهاية xmp / نهاية iptc / بدء-من علامات البيانات التي يمكن أن تستخدم للحصول على اختباري فقط جزء البيانات من jpg / jpeg (وغيرها من صيغ الصور)?

هل كانت مفيدة؟

المحلول 6

الوسائط لديه دعم الشيكات لـ JPEG ، MP3 ، M4A ، إلخ

نصائح أخرى

أعتقد أن هذا السؤال مرتبط بهذا السؤال حساب تجزئة فقط بيانات الصورة الأساسية (باستثناء البيانات الوصفية) لصورة, https://stackoverflow.com/a/10075170/890106 يعطي عنصر الإجابة إذا كنت تبحث عن رمز.

قد لا يعمل مع جميع متغيرات JPG على الرغم من ذلك: يمكن لبعضها تضمين صور متعددة (تنسيق MPF / CIPA متعدد الصور ، والمزيد من المعلومات في http://www.sno.phy.queensu.ca/~phil/exiftool/tagnames/mpf.html) وقد لا يزال لديك بعض البيانات الوصفية. أيضًا ، وضعت بعض البرامج UID في شكل-[0-9A-F]+-في نهاية الملف ولا ينبغي قراءتها. الحل الأكثر أمانًا إذا كان على الأرجح لفحص وحدات البكسل (على الرغم من أنه لا يزال بإمكانك أن يكون لديك تأثير على الاتجاه ، ملف تعريف اللون ، ..).

تتمثل إحدى الطرق السهلة للحصول على تجزئة من بيانات البكسل فقط لتحويل JPEG إلى BMP 32bit أو بدلاً من ذلك في PNG وحساب التجزئة من ذلك. سيؤدي ذلك إلى تجريد جميع المعلومات المرتبطة من JPEGs ، وحتى يتطابق مع JPEGs مع ترميزات مختلفة تؤدي إلى نفس بيانات البكسل. يمكنك بالطبع أيضًا استخدام بيانات Pixel في الذاكرة الخاصة بـ BMPs الناتجة مباشرة إذا كان لديك (IE Windows لديها العديد من وظائف API للحصول عليها من أي نوع صورة مدعوم).

نعم jpeg, exif, أنا لا أعرف إلى الآخرين.

JPEG المواصفات التي يجب يسمى JFIF (تنسيق تبادل ملف JPEG) يأتي من المرفق باء من ISO 10918-1 و مثل كل ISO المواصفات ، فإنه يأخذ قراءة متأنية لمعرفة كيفية ترجمة المواصفات في هياكل البيانات.أعتقد هذا هو أسهل بكثير من اتبع

EXIF شكل يوزع مثل TIFF.كل قطعة لديه نوع و حجم لذا يمكنك فقط سيرا على الأقدام قطع حتى تحصل على بيانات الصورة قطعة.فقد مؤشر إلى بيانات الصورة (في الواقع مؤشرات إلى شرائح, ولكن أنا متأكد من أن يمكنك أن تفترض كل شيء بعد أول شريط من بيانات الصورة إلى نهاية ملف بيانات الصورة.

Exif تنسيق موقع الويب الخاص بها

سيكون عليك أن تنظر إلى كل تنسيق. بالنسبة إلى JPEG ، يبدو الأمر الهيكل يعني أنه يمكنك فقط إجراء اختبارات من الأقسام التي تبدأ بـ FFEN (على سبيل المثال 0xFFE1) وتحقق من البايتات المحددة بعد كل علامة (يبدو أن الطول يتبع العلامة وهو 2 بايت بتنسيق كبير منديان). لمزيد من التفاصيل ، انظر هنا.

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

إذا كنت ترغب في تقييد نفسك على JPEG ، فيمكنك التحقق من البيانات بين SOI و EOI. هذا الجواب يمكن تكييفها قليلاً لفعل ما تحتاجه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top