كيف يمكنني معرفة ما إذا كانت صورة TIFF بتنسيق Ccitt T.6 (المجموعة 4)؟

StackOverflow https://stackoverflow.com/questions/1548446

سؤال

كيف يمكنني معرفة ما إذا كانت صورة TIFF بتنسيق Ccitt T.6 (المجموعة 4)؟

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

المحلول

يمكنك استخدام مثال رمز (C#). يعيد قيمة تشير إلى نوع الضغط:

1: لا ضغط
2: مجموعة CCITT 3
3: مجموعة CCITT المتوافقة مع الفاكس 3
4: مجموعة CCITT 4 (T.6)
5: LZW

public static int GetCompressionType(Image image)
{
    int compressionTagIndex = Array.IndexOf(image.PropertyIdList, 0x103);
    PropertyItem compressionTag = image.PropertyItems[compressionTagIndex];
    return BitConverter.ToInt16(compressionTag.Value, 0);
}

نصائح أخرى

يمكنك التحقق من هذه الروابط

Tag 259 (Hex 0x0103) قم بتخزين المعلومات حول طريقة الضغط.

--- علامة الضغط = 259 (103) اكتب = كلمة N = 1 افتراضي = 1.

1 = لا يوجد ضغط ، ولكن قم بتعبئة البيانات في بايت بإحكام قدر الإمكان ، مع عدم وجود أجزاء غير مستخدمة إلا في نهاية الصف. يتم تخزين البايتات كمجموعة من البايتات ، لـ bitspersample <= 8 ، كلمة إذا كان bitspersample> 8 و <= 16 ، و dword إذا كان bitspersample> 16 و <= 32. يجب أن يكون ترتيب البايت للبيانات> 8 بتات متسقة مع ذلك محدد في رأس ملف TIFF (بايت 0 و 1). هناك حاجة إلى صفوف للبدء على حدود البايت.

2 = CCITT Group 3 1-Dimensional Modified Huffman Run RecoD. انظر algrthms.txt bitspersample يجب أن يكون 1 ، حيث يتم تعريف هذا النوع من الضغط فقط لصور Bilevel (مثل صور الفاكس ...)

3 = مجموعة CCITT المتوافقة مع Facsimile ، تمامًا كما هو محدد في "توحيد جهاز الفاكس المجموعة 3 لنقل المستندات" ، التوصية T.4 ، المجلد السابع ، Fascicle VII.3 ، المعدات الطرفية والبروتوكولات للخدمات التلال ، والتلغراف الدولي و اللجنة الاستشارية للهاتف (CCITT) ، جنيف ، 1985 ، الصفحات من 16 إلى 31. يجب أن يبدأ كل شريط على حدود البايت. (ولكن تذكر أن الصورة يمكن أن تكون شريطًا واحدًا.) الصفوف التي ليست الصف الأول من الشريط غير مطلوب للبدء على حدود البايت. يتم تخزين البيانات على أنها بايت ، وليس الكلمات - غير مسموح بعكس البايت. راجع حقل Group3Options لخيارات المجموعة 3 مثل الترميز 1D مقابل 2D.

4 = مجموعة CCITT المتوافقة مع الفاكس 4, ، بالضبط كما هو محدد في "مخططات الترميز الفاكسية ووظائف التحكم في الترميز لجهاز الفاكس المجموعة 4 ، التوصية T.6 ، المجلد السابع ، اللجنة الثامنة VII.3 ، المعدات الطرفية والبروتوكولات للخدمات عن بُعد ، اللجنة الاستشارية للتلغراف الدولية (CCITT) (CCITT (CCITT ) ، جنيف ، 1985 ، الصفحات من 40 إلى 48. يجب أن يبدأ كل شريط على حدود البايت. الصفوف التي ليست الصف الأول من الشريط ليست مطلوبة للبدء على حدود البايت. يتم تخزين البيانات على أنها بويت ، وليس الكلمات. راجع حقل Group4Options لخيارات المجموعة 4.

5 = ضغط LZW ، لتراعي ، اللون المعين ، والصور الملونة الكاملة.

يمكنك الجري identify -verbose من ImageMagick جناح على الصورة. ابحث عن "الضغط: Group4" في الإخراج.

تحديث:

لذلك ، قمت بتنزيل libtiff مكتبة من الرابط الذي ذكرته من قبل ، ومن ما رأيته ، يمكنك القيام بما يلي: (لم يخبر)

int isTIFF_T6(const char* filename)
{
TIFF* tif= TIFFOpen(filename,"r");
TIFFDirectory *td = &tif->tif_dir;
if(td->td_compression == COMPRESSION_CCITTFAX4) return 1;
return 0;
}

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

هذا مقتطف:

تغطي الورقة التالية T.4 و T.6 و JBIG:

"مراجعة معايير التصوير الإلكتروني لأنظمة الفاكس" في مجلة التصوير الإلكتروني ، المجلد. 1 ، رقم 1 ، ص 5-21 ، يناير 1992.

يمكن الحصول على رمز المصدر كجزء من تقنيات ضغط صورة TIFF - TIFF للصور الثنائية ، وتشمل Ccitt T.4 و T.6:

ftp://ftp.sgi.com/graphics/tiff/tiff-v3.4beta035-tar.gzالاتصال: sam@engr.sgi.com

اقرأ أكثر: http://www.faqs.org/faqs/compression-faq/part1/section-16.html#ixzz0tylgknhi

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