GIF

GIF
Rotating earth (large).gif
امتداد اسم الملف.gif
نوع وسائط الإنترنتimage/gif
كود النوعGIFf
Uniform Type Identifier (UTI)com.compuserve.gif
Magic numberGIF87a/GIF89a
طورهCompuServe
أول إصدار15 يونيو 1987 [1]
أحدث إصدار
89a
(1989[2])
نوع الصيغةlossless bitmap image format
الموقع الإلكترونيwww.w3.org/Graphics/GIF/spec-gif89a.txt

نسق الرسومات المتبادلة (إنگليزية: Graphics Interchange Format؛ اختصاراً GIF؛ /ɡɪf/ GHIF أو /ɪf/ JIF، see pronunciation)، هو نسق صور للرسومات النقطية طوره فريق في شركة كمپيوسرڤ] بقيادة عالم الحاسوب الأمريكي [[ستيڤ ولهايتي] وطُرح في 15 يونيو 1987.[1] ومنذ ذلك الحين انتشر استخدامه على شبكة الوب نظراً لدعمه الواسع وإمكانية النقل بين التطبيقات وأنظمة التشغيل.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

التاريخ

صورة الطفل الراقص، من أكثر الصور التي يفضلها ستيف.

عمل مهندس الحاسوب الأمريكي ستيفن ولهايت وفريقه في كمپيوسرڤ على صيغة ملفات GIF، أو نسق الرسومات المتبادلة، والذي يُستخدم الآن للتفاعلات والرسائل والنكات، أثناء عمله في كمپيوسرڤ في الثمانينيات. تقاعد في أوائل عقد 2000 وقضى وقته في السفر والتخييم وبناء نماذج القطارات في قبو منزله. [3]

على الرغم من أن ملفات GIF مرادفة لميمات الإنترنت المتحركة هذه الأيام، لم يكن هذا هو السبب وراء إنشاء ولهايت للتنسيق. قدمتها كمپيوسرڤ في أواخر الثمانينيات كطريقة لتوزيع "رسومات عالية الجودة وعالية الدقة" بالألوان في وقت كانت فيه سرعات الإنترنت بطيئة للغاية مقارنة بما هي عليه اليوم. قالت زوجته كاثالين: "لقد اخترع GIF بمفرده - لقد فعل ذلك بالفعل في المنزل وأدخله إلى العمل بعد أن أتقنه". "كان يكتشف كل شيء بمفرده ثم يذهب إلى المدينة لبرمجته على الحاسوب."

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


المصطلح

النطُق

A humorous image announcing the launch of a Tumblr account for the White House suggests pronouncing GIF with a hard g.



بينما كانت هناك نقاشات طويلة الأمد حول النطق الصحيح لتنسيق الصورة، كان ولهايت واضحًا جدًا حول الكيفية التي كان ينوي أن يقال بها. عام 2013، قال لصحيفة نيويورك تايمز، "يقبل قاموس أوكسفورد الإنجليزي كلا المنطقين. هم مخطئون. إنها كلمة "ج" ناعمة، تُنطق "جيف".

كرر هذا الموقف أثناء قبوله جائزة وبي للإنجاز مدى الحياة عن اختراع GIF في وقت لاحق من ذلك الشهر، باستخدام الرسوم المتحركة لإلقاء خطاب القبول. قالت كاثالين: "بعد 25 عامًا، كرّموا أخيرًا هذا الإنجاز الذي حققه"، مضيفة أن إنشاء GIF كان أكثر ما كان يفتخر به.

الاستخدام

نسق الملف

اللوحات

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


اللون الحقيقي

صورة متحركة بتنسيق GIF توضح تقنية لعرض أكثر من الحد المعتاد البالغ 256 لون


مثال على ملفات GIF

عينة صورة (مكبرة)، الحجم الفعلي 3 پكسل عرض بـ 5 ارتفاع
تحدد Dh إلى 30Ch في المثال لوحة من 256 لون.


جدول مثال لقيم صورة GIF
بايت # (hex) نظام الست عشري النص أو القيمة المعنى
0 47 49 46 38 39 61 GIF89a رأس الصفحة
6 03 00 3 عرض الشاشة المنطقي
8 05 00 5 ارتفاع الشاشة المنطقي
A F7 يتبع GCT 256 لوناً بدقة 3قالب:Resx8 بت/أساسي، وتمثل أقل 3 بت عمق البت مطروحاً منه 1، ويعني أعلى بت حقيقي وجود GCT
B 00 0 لون خلفية : #000000, أسود
C 00 0 نسبة العرض إلى الارتفاع الافتراضية للپكسل، 0:0
D 00 00 00
R (أحمر) G (أخضر) B (أزرق)
0 0 0
جدول الألوان العام, لون #0: #000000, أسود
10 80 00 00
R (أحمر) G (أخضر) B (أزرق)
128 0 0
جدول الألوان العام، لون #1: بت شفاف، لا تستخدم في الصور
... ... ... يمتد جدول الألوان العام إلى 30A
30A FF FF FF
R (أحمر) G (أخضر) B (أزرق)
255 255 255
جدول الألوان العام، لون#255: #ffffff, أبيض
30D 21 F9 ملحق التحكم في الرسوم (حقول التعليق تسبق هذا في معظم الملفات)
30F 04 4 مقدار بيانات GCE، 4 بايت
310 01 لون خلفية شفافة؛ هذا حقل بت، أدنى بت يدل على الشفافية
311 00 00 تأخير للرسوم المتحركة في مئات من الثانية؛ غير مستعمل
313 10 16 رقم لون الپكسل الشفاف في GCT
314 00 نهاية كتلة GCE
315 2C واصف الصورة
316 00 00 00 00 (0, 0) موضع الزاوية الشمالية الغربية للصورة في الشاشة المنطقية
31A 03 00 05 00 (3, 5) عرض الصورة وارتفاعها بالپكسل
31E 00 0 بت جدول الألوان المحلية، 0 يعني لا شيء
31F 08 8 بداية الصورة، الحد الأدنى لحجم رمز LZW
320 0B 11 يتبع مقدار الصورة المشفرة LZW 11 بايت
321 00 51 FC 1B 28 70 A0 C1 83 01 01 <image data> 11 بايت من بيانات الصورة، انظر الحقل 320
32C 00 0 نهاية كتلة بيانات الصورة
32D 3B إنهاء الملف

ترميز الصورة

رسم خرائط عكسي
كود 9 بت بايت
نظام العد الست عشري نظام العد الثنائي نظام العد الست عشري نظام العد الثنائي
100 1 00000000 00000000 00
028 00 0101000 0101000 1 51
0FF 011 111111 111111 00 FC
103 1000 00011 00011 011 1B
102 10000 0010 0010 1000 28
103 100000 011 011 10000 70
106 1000001 10 10 100000 A0
107 10000011 1 1 1000001 C1
10000011 83
101 1 00000001 00000001 01
0000000 1 01

فك ترميز الصورة

هل عُثر على رمز وارد في الجدول؟
نعم إضافة سلسلة للرمز المحلي متبوعة بالبايت الأول من السلسلة للرمز الوارد
لا إضافة سلسلة للرمز المحلي متبوعة بنسخة من البايت الأول الخاص بها
      shift
9-bit ----> Local      Table                 Pixel
code        code   code --> string   Palette color  Action
100h               000h  | #0                       Initialize root table of 9-bit codes
                    :    | palette
                    :    | colors
                   0FFh  | #255
                   100h  | clr
                   101h  | end
028h                     |             #40   BLACK  Decode 1st pixel
0FFh        028h         |                           Incoming code found in table
                         |             #255  WHITE   - output string from table
                   102h  | 28 FF                     - add to table
103h        0FFh         |                           Incoming code not found in table
                   103h  | FF FF                     - add to table
                         |                           - output string from table
                         |             #255  WHITE
                         |             #255  WHITE
102h        103h         |                           Incoming code found in table
                         |                           - output string from table
                         |             #40   BLACK
                         |             #255  WHITE
                   104h  | FF FF 28                  - add to table
103h        102h         |                           Incoming code found in table
                         |                           - output string from table
                         |             #255  WHITE
                         |             #255  WHITE
                   105h  | 28 FF FF                  - add to table
106h        103h         |                           Incoming code not found in table
                   106h  | FF FF FF                  - add to table
                         |                           - output string from table
                         |             #255  WHITE
                         |             #255  WHITE
                         |             #255  WHITE
107h        106h         |                           Incoming code not found in table
                   107h  | FF FF FF FF               - add to table
                         |                           - output string from table
                         |             #255  WHITE
                         |             #255  WHITE
                         |             #255  WHITE
                         |             #255  WHITE
101h                     |                           End


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

أطوال رمز LZW

GIF الغير مضغوط

ملف:Quilt design as 46x46 uncompressed GIF.gif
ملف GIF غير مضغوط مقاس 46×46 برموز 7 بت (128 لوناً، رموز 8 بت). اضغط على الصورة لشرح الكود.
بايت # (hex) نظام العد الست عشري النص أو القيمة المعنى
320 14 20 20 بايت تتبع بيانات الصورة غير المضغوطة
321 00 51 FC FB F7 0F C5 BF 7F FF FE FD FB F7 EF DF BF 7F 01 01
335 00 0 نهاية بيانات الصورة

مثال الضغط

نموذج لضغط ملف GIF
الرمز الپكسلات ملاحظات
No.
Ni
قيمة
Ni + 256
طول
(البتات)
This code
Ni
تراكم
Ni(Ni + 1)/2
العلاقات التي تستخدم Ni تنطبق فقط على وحدات الپكسل ذات اللون نفسه حتى يمتلئ جدول الترميز.
0 100h 9 مسح جدول التعليمات البرمجية
1 FFh 1 1 تم اختيار لون الپكسل الأيسر العلوي كأعلى مؤشر للوحة ذات 256 لون
2 102h 2 3
3
255
103h
1FFh
3
255
6
32640
آخر كود 9 بت
256
767
200h
3FFh
10 256
767
32896
294528
رمز آخر 10 بت
768
1791
400h
7FFh
11 768
1791
295296
1604736
رمز 11 بت الأخير
1792
3839
800h
FFFh
12 1792
3839
1606528
7370880
ملئ جدول الرمز
FFFh 3839 قد يتكرر الحد الأقصى للرمز لمزيد من وحدات البكسل ذات اللون نفسه.
يقترب ضغط البيانات الإجمالي بشكل مقارب 3839 × 8/12 = 2559+1/3
101h نهاية بيانات الصورة

تُجمع قيم الكود الموضحة في وحدات البايت التي يتم تعبئتها بعد ذلك في كتل تصل إلى 255 بايت. تبدأ كتلة بيانات الصورة ببايت يحدد عدد البايتات التي يجب اتباعها. يتم تمييز الكتلة الأخيرة من البيانات للصورة ببايت بطول كتلة صفري.

التشابك

GIF المتحركة

يمكن استخدام GIF لعرض الرسوم المتحركة، كما في هذه الصورة Newton's cradle.
صورة متحركة بتنسيق GIF تتكون من صورتين، تتحول إحداها إلى الأخرى
صورة متحركة بسيطة بثلاث صور للحمام تتكرر إلى أجل غير مسمى.


يوضح المثال التالي بنية ملف الرسوم المتحركة Rotating earth (large).gif المعروض (كصورة مصغرة) في صندوق المعلومات الخاص بالمقالة.

Structure of GIF
بايت # (hex) نظام العد الست عشري النص أو القيمة المعنى
0 47 49 46 38 39 61 GIF89a واصف الشاشة المنطقية
6 90 01 400 العرض بالپكسل
8 90 01 400 الارتفاع بالپكسل
A F7 تتبع GCT 256 لوناً بدقة 3قالب:Resx8 بت/أساسي
B 00 0 لون الخلفية: #000000، أسود
C 00 0 نسبة العرض إلى الارتفاع الافتراضية للبكسل، 0:0
D 00 جدول الألوان العام
30D 21 FF ملحق التطبيق
30F 0B 11 حجم الكتلة بما في ذلك اسم التطبيق وبايت التحقق (دائماً 11)
310 4E 45 54 53 43 41 50 45 32 2E 30 NETSCAPE2.0 اسم التطبيق ذو 8 بايت بالإضافة إلى 3 بايت التحقق
31B 03 3 عدد البايتات في الكتلة الفرعية التالية
31C 01 1 فهرس كتلة البيانات الفرعية الحالية (دائماً 1 لكتلة NETSCAPE)
31D FF FF 65535 عدد غير مرمز من التكرار
31F 00 نهاية سلسلة الكتل الفرعية لكتلة امتداد التطبيق
320 21 F9 امتداد التحكم في الرسومات للإطار #1
322 04 4 عدد البايتات (4) في الكتلة الفرعية الحالية
323 04
000.....
...001..
......0.
.......0
(مقسم إلى أقسام لتسهيل القراءة)
محجوزة، 5 بتات دنيا

في حقل بت طريقة الترتيب 1: لا تتخلص منها
لا يوجد إدخال للمستخدم لون شفاف، 0 يعني غير معطى

324 09 00 9 تأخير الإطار: 0.09 ثانية تأخير قبل تلوين الإطار التالي
326 FF مؤشر اللون الشفاف (غير مستخدم في هذا الإطار)
327 00 نهاية سلسلة الكتل الفرعية لكتلة امتداد التحكم في الرسوم
328 2C واصف الصورة للإطار #1
329 00 00 00 00 (0, 0) موضع الزاوية الشمالية الغربية للصورة في الشاشة المنطقية: (0, 0)
32D 90 01 90 01 (400, 400) عرض الإطار وارتفاعه: 400قالب:Resx400 پكسل
331 00 0 جدول الألوان المحلي: 0 يعني لا شيء ولا يوجد تداخل
332 08 8 الحد الأدنى لحجم رمز LZW لبيانات الصورة للإطار #1
333 FF 255 عدد بايتات بيانات صورة LZW في الكتلة الفرعية التالية: 255 بايت
334 ... <بيانات الصورة> بيانات الصورة، 255 بايت
433 FF 255 عدد بايتات بيانات صورة LZW في الكتلة الفرعية التالية، 255 بايت
434 ... <بيانات الصورة> بيانات الصورة، 255 بايت
تكرار للكتل التالية
92C0 00 نهاية سلسلة الكتل الفرعية لهذا الإطار
92C1 21 F9 امتداد التحكم في الرسم للإطار #2
تكرار للإطارات التالية
EDABD 21 F9 امتداد التحكم في الرسم للإطار #44
معلومات وبيانات الصورة للإطار #44
F48F5 3B سلسلة: يشير آخر بايت في الملف، إلى EOF

البيانات الوصفية

يونيسيس إنفاذ براءة اختراع LZW

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

البدائل

PNG

النسق المتحركة

انظر أيضاً

المصادر

  1. ^ أ ب "Graphics Interchange Format, Version 87a". W3C. 15 June 1987. Archived from the original on 25 December 2018. Retrieved 13 October 2012.
  2. ^ "Graphics Interchange Format, Version 89a". W3C. 31 July 1990. Archived from the original on 25 December 2018. Retrieved 6 March 2009.
  3. ^ "Stephen Wilhite, creator of the GIF, has died". theverge.com. 2022-03-23. Retrieved 2022-03-24.

وصلات خارجية

قالب:Graphics file formats