SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA. SEMINARSKI RAD U OKVIRU PREDMETA "Računalna forenzika" 2016/2017. GIF FORMAT (.

Similar documents
SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Podešavanje za eduroam ios

Port Community System

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

BENCHMARKING HOSTELA

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

Uvod u relacione baze podataka

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Tutorijal za Štefice za upload slika na forum.

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

Mindomo online aplikacija za izradu umnih mapa

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Nejednakosti s faktorijelima

PE FORMAT (.EXE,.DLL)

1. Instalacija programske podrške

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports.

Windows Easy Transfer

SAS On Demand. Video: Upute za registraciju:

Otpremanje video snimka na YouTube

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

DIGITALIZACIJA SLIKOVNIH PODATAKA. 1. Digitalizacija. Digitalizacija slika

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE

SEMINARSKI RAD FORMATI ZAPISA FOTOGRAFIJA

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

Bušilice nove generacije. ImpactDrill

MASKE U MICROSOFT ACCESS-u

Statistička analiza algoritama za dinamičko upravljanje spremnikom

Računarska grafika je oblast računarstva koja se bavi kreiranjem, obradom, prilagođavanjem slika i animacija pomoću računara.

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

PROJEKTNI PRORAČUN 1

ANDROID APLIKACIJA ZA STEGANOGRAFIJU

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

PODSUSTAV ZA UPRAVLJANJE SPREMNIKOM UGRADBENOG RAČUNALA

RANI BOOKING TURSKA LJETO 2017

IZRADA TEHNIČKE DOKUMENTACIJE

OTVARANJE BAZE PODATAKA I IZRADA TABLICE U MICROSOFT ACCESS-u

EKSPLORATIVNA ANALIZA PODATAKA IZ SUSTAVA ZA ISPORUKU OGLASA

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

BLOCKCHAIN. Domina Hozjan SVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad

KABUPLAST, AGROPLAST, AGROSIL 2500

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

Permanent Expert Group for Navigation

3D GRAFIKA I ANIMACIJA

Web usluge. Web usluge

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima

WEB APLIKACIJA S BAZOM RECEPATA

3D ANIMACIJA I OPEN SOURCE

IZRADA PORTALA O PROGRAMSKOM JEZIKU PYTHON U SUSTAVU ZA UREĐIVANJE WEB SADRŽAJA

FAKULTET ZA POSLOVNU INFORMATIKU

STRUČNA PRAKSA B-PRO TEMA 13

KAKO GA TVORIMO? Tvorimo ga tako, da glagol postavimo v preteklik (past simple): 1. GLAGOL BITI - WAS / WERE TRDILNA OBLIKA:

Korak X1 X2 X3 F O U R T W START {0,1}

ECONOMIC EVALUATION OF TOBACCO VARIETIES OF TOBACCO TYPE PRILEP EKONOMSKO OCJENIVANJE SORTE DUHANA TIPA PRILEP

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

TEHNO SISTEM d.o.o. PRODUCT CATALOGUE KATALOG PROIZVODA TOPLOSKUPLJAJUĆI KABLOVSKI PRIBOR HEAT-SHRINKABLE CABLE ACCESSORIES

PREDSTAVLJANJE INFORMACIJA

INFORMATIKA II AutoCAD 9. deo. Rudarsko-geološki fakultet Rudarski odsek

WEB SUSTAV ZA ZADAVANJE I PRIKUPLJANJE PONUDA ZA PUTOVANJA

DANI BRANIMIRA GUŠICA - novi prilozi poznavanju prirodoslovlja otoka Mljeta. Hotel ODISEJ, POMENA, otok Mljet, listopad 2010.

Algoritmi za izračunavanje sažetka CCERT-PUBDOC

Optimizacija memorijskog zapisa digitalne slike

CRNA GORA

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

OBLIKOVANJE WEB STRANICA Praktikum (laboratorijske vježbe) Haidi Božiković

Priprema podataka. NIKOLA MILIKIĆ URL:

MRS MRSLab08 Metodologija Razvoja Softvera Vežba 08

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

1.7 Predstavljanje negativnih brojeva u binarnom sistemu

int[] brojilo; // polje cjelih brojeva double[] vrijednosti; // polje realnih brojeva

Programiranje za internet zimski semestar 2013/2014. Java kroz primjere (skripta je u fazi izradi)

OTVARANJE BAZE PODATAKA U MICROSOFT ACCESSU XP

LabVIEW-ZADACI. 1. Napisati program u LabVIEW-u koji računa zbir dva broja.

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO ROBERT PRAŠNIČKI

UPOREĐIVANJE STEPENA KOMPRESIJE KOD ALGORITAMA SA GUBICIMA I BEZ GUBITAKA

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET!

3. Obavljanje ulazno-izlaznih operacija, prekidni rad

Donosnost zavarovanj v omejeni izdaji

Implementacija sparsnih matrica upotrebom listi u programskom jeziku C

MREŽNI SLOJ INTERNETA

Croatian Automobile Club: Contribution to road safety in the Republic of Croatia

UPITI (Queries) U MICROSOFT ACCESSU XP

Modelling Transport Demands in Maritime Passenger Traffic Modeliranje potražnje prijevoza u putničkom pomorskom prometu

RAZVOJ IPHONE APLIKACIJA POMOĆU PROGRAMSKOG JEZIKA SWIFT

Serbian Mesopotamia in the South of the Great Hungarian (Pannonian) Plain. Tisza Tisa. Danube Dunav Duna V O J V O D I N A. Sava

RAZVOJ DINAMIČKIH WEB APLIKACIJA UPORABOM PHP-a I AJAX-a

Adapted for classroom use by

24th International FIG Congress

Microsoft Excel Moć tabličnog računanja

Halina, Hesus. (Advent) œ N œ œ œ. œ œ œ œ œ. œ. œ œ œ œ. œ œ. C F G7sus4. œ. # œ œ J œ œ œ J. œ œ. J œ. # œ. # œ œ œ

APLIKACIJA ZA RAČUNANJE N-GRAMA

NAZIV SEMINARA (ARIEL 28pt)

Transcription:

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINARSKI RAD U OKVIRU PREDMETA "Računalna forenzika" 2016/2017 GIF FORMAT (.gif) Renato-Zaneto Lukež Zagreb, siječanj 2017.

Sadržaj 1. Uvod... 1 2. GIF datoteka... 2 2.1 Opis formata... 2 2.2 Zaglavlje... 3 2.3 Logički opis ekrana... 4 2.4 Globalna tablica boje... 4 2.5 Dodatak grafičkog upravljača... 5 2.6 Opis slike... 6 2.7 Podaci slike... 6 2.8 Dodaci običnog teksta, aplikacije i komentara... 7 2.9 Podnožje... 8 Zaključak... 9 Literatura... 10

1. Uvod "Graphics Interchange Format" ili bolje poznatiji kao GIF je format slike bitne mape proizveden u tvrtki internetskog poslužitelja "CompuServe" 1987 godine. Od onda se njegova primjena uvelike proširila na World Wide Web, te se zbog njegove podrške i pokretnosti danas smatra jednim od dva najpopularnija grafička formata za razmjenu slika. Format podržava 8 bita po pikselu za svaku sliku i time omogućuje da se jedna slika referencira na vlastitu paletu od 256 različitih boja odabranih iz RGB prostora boja definiranih s 24 bita. Isto tako podržava animacije i omogućuje odvojene palete od 256 boja za svaki idući okvir. Takva ograničenja palete GIF format čine manje prikladnim za prikaz boje u fotografijama i drugim slikama s kontinuiranom bojom, ali je prikladan za prikaz jednostavne slike poput jednobojne grafike ili logotipa. GIF slika se kompresira korištenjem "Lempel-Ziv-Welch" (LZW) kompresije bez gubitka podataka koja umanjuje veličinu datoteke bez da degradira njezinu vizualnu kvalitetu. Ovakva kompresija patentirana je 1985 godine. Originalna verzija GIF formata zvala se 87a, a njena unaprijeđena verzija 89a koja je omogućila podršku za kašnjenje animacije, prozirnu pozadinsku boju i spremanje specifičnih metapodataka za aplikacije. Već od 1987 godine korisnici "Atari ST" ili "Commodore 64" kućnog računala mogli su gledati slike stvorene u GIF formatu. U rujnu 1995 web preglednik "Netscape Navigator 2.0" dodao je podršku za animirani GIF. U današnje vrijeme svojstvo spremanja više slika u jednu datoteku opsežno se koristi za prikaz jednostavnih animacija na internetu. Zbog istog razloga od svibnja 2015 društvena stranica "Facebook" dodala je podršku za GIF format, iako ga nije podržavala od samog početka. U nastavku ovog seminarskog rada opisuje se struktura GIF datoteke gdje se detaljno pojašnjavaju specifikacije pojedinog bloka koji čine GIF datoteku. 1

2. GIF datoteka 2.1 Opis formata U ovom poglavlju opisat će se struktura GIF datoteke. Kao što je ranije navedeno postoje 2 formata GIF datoteke: GIF87a i GIF89a. S obzirom na to da je GIF89a unaprijeđena verzija, primjer koji ćemo koristiti u nastavku teksta temeljit će se na tom formatu. GIF datoteka sastoji se od nekoliko različitih blokova podataka. Dijagram sa Slike 1. prikazuje različite blokove i prikazuje gdje se oni nalaze u datoteci. Na Slici 1. također možemo vidjeti usporedbu između GIF87a i GIF89a formata. Za razliku od GIF87a, GIF89a ima nekoliko polja više i iz tog razloga opis dijelova blokova vršit će se na GIF89a formatu. Slika 1. - Struktura GIF formata Recimo da je primjer slika dimenzija 10x10 i recimo da će se radi preglednosti ta slika povećati na sliku dimenzija 100x100. Uz tu sliku prikazat će se bitovi spremljeni u takvom tipu datoteke. Ovakav primjer prikazan je na Slici 2. i služit će za približavanje korisnika pojedinim blokovima unutar GIF datoteke s njihovim bitovnim blokom. 2

Slika 2. - Primjer koji koristimo za opis strukturu GIF datoteke 2.2 Zaglavlje Prvi blok je zaglavlje (eng. header) u kojem se nalazi prvih 6 bajtova. Cijela datoteka spremljena je uporabom ASCII znakova. I tako prva tri bajta opisuju format u kojem je datoteka spremljena, a druga tri označavaju koja se verzija GIF formata koristi. Ako pogledamo prvi dio bloka vidimo "GIF" (47="G", 49="I", 46="F"), a ako pogledamo drugi dio bloka vidimo "89a" (ie 38="8", 39="9", 61="a"), odnosno "87a" (ie 38="8", 37="7", 61="a"), ovisno koji se format koristi. Oblik i dio bitovnog bloka koji to označuje može se vidjeti na Slici 3. Slika 3. - Zaglavlje 3

2.3 Logički opis ekrana Blok ispod ovog je logički opis ekrana (eng. logical screen descriptor). Logički opis ekrana nalazi se odmah iza zaglavlja. Ovaj dio datoteke govori dekoderu koliko će prostora zauzeti slika. Točno je dugačak 7 bajtova. Prva dva bajta opisuju širinu platna. Zatim iduća dva bajta opisuju visinu platna. Sljedeći podatak je pakirani bajt, što znači da taj bajt unutar sebe definira dodatne parametre definirane bitovima. Prvi bit unutar tog bajta predstavlja zastavicu globalne tablice boje, iduća tri bita unutar pakiranog bajta predstavljaju razlučivost boje, sljedeći bit predstavlja zastavicu sortiranja, a zadnja tri bita predstavljaju veličinu globalne tablice boje. Kada je završilo očitavanje pakiranog bajta, idući bajt koji se čita je indeks pozadinske boje, a odmah iza njega je zadnji bajt logičkog opisa ekrana koji definira omjer slike u pikselima. Cijela struktura logičkog opisa ekrana prikazuje Slika 4. Slika 4. - Logički opis ekrana 2.4 Globalna tablica boje Idući bloka je globalna tablica boje (eng. global color table). Strukturu bloka globalne tablice boje prikazuje Slika 5. Kao što vidimo, taj blok u sebi sadrži popis svih boja koje slika može prikazati i ne prikazuje boje koje ta lista ne sadrži. Kao što je ranije rečeno svaki GIF može imati svoju paletu boja, a ona se navodi u logičkom opisu ekrana i spremljena je u veličinu globalne tablice boje koja se nalazi u zadnja tri bita pakiranog bajta. Veličinu koja ta tri bita mogu poprimiti je u rasponu od 0-7, a broj boja koji se može prikazati jednak je reda potencije broja dva, gdje je potencija uvećana za jedan. Tako na primjer ako je u veličini globalne tablice boje spremljena vrijednost 0, tada globalna tablica boje može prikazati samo dvije boje - crnu i bijelu. A ako je u veličini globalne tablice boje spremljena vrijednost 7, tada globalna tablica boje u sebi sadrži 256 različitih boja. 4

Slika 5. - Globalna tablica boje 2.5 Dodatak grafičkog upravljača Sljedeći blok opisuje dodatak grafičkog upravljača (eng. graphic control extension). Ovaj blok često se koristi za opisivanje postavki prozirnosti, te upravlja animacijama. On je opcionalan, a sastoji se od 8 bajtova. Prvi bajt je predstavnik dodatka i uvijek ima vrijednost 21. Iduća je oznaka grafičkog upravljača koja je uvijek F9. Treći bajt govori kolika je veličina bloka u bitovima. Idući bajt pakiran je u polje gdje su prva 3 bita rezervirana za buduću uporabu, iduća 3 bita pokazuju metodu odstranjivanja, sljedeći bit je zastavica ulaznog korisnika, a zadnji bit označava zastavicu prozirnosti boje. Nakon toga dolazi vrijeme odgađanja kojeg opisuju 2 bajta. Iza njega polje od jednog bajta definira indeks prozirnosti boje. I konačno zadnji bajt okončava blok, a definiran je ASCII zapisom 00. Raspored bajtova detaljno prikazuje Slika 6. Slika 6. - Dodatak grafičkog upravljača 5

2.6 Opis slike Idući blok je blok opisa slike (eng. image descriptor). Ovaj blok detaljno prikazuje Slika 7., a sastoji se od točno 10 bajtova. Prvi bajt označava razdjelnik slike koji je uvijek definiran ASCII zapisom 2C. Idućih 8 bajtova predstavlja lokaciju i veličinu nadolazeće slike i to parametrima lijeve pozicije slike, gornje pozicije slike, širine slike i visine slike i to tako da je svaki parametar reda veličine 2 bajta. Zadnji bajt je opet pakirano polje gdje prvi bit označava zastavicu lokalne tablice boja, drugi bit označava zastavicu preklapanja, treći bit zastavicu sortiranja, iduća dva bita rezervirana su za buduću uporabu i zadnja tri bita koji označavaju veličinu lokalne tablice boja. Nakon opisa slike lokalna tablica boje (eng. local color table) nalazi se odmah iza ako je uključena zastavica za lokalnu tablicu boja. Slika 7. - Opis slike 2.7 Podaci slike Nakon opisa slike konačno stižemo u blok u kojem se nalaze podaci slike (eng. image data). Podaci slike sastoje se od skupa izlaznih kodova koje govore dekoderu koju boju treba prikazati na platnu. Ti kodovi sastavljeni su u bajtove koji definiraju taj blok. Prvi bajt ovog bloka označava minimalnu LZW kodnu veličinu. Ova vrijednost koristi se za dekodiranje i kompresiranje izlaznog koda. Ostatak bajtova označava podatke pod blokova. Pod blokovi su grupe od 1-256 bajtova. Prvi bajt u pod bloku govori koliko bajtova slijedi od ukupnog broja podataka. To mogu biti podaci od 0 (00), pa sve do 255 (FF). Idući bajt označava koliko još bajtova slijedi nakon prethodnog. I tako se nastavlja niz sve dok se ne dosegne pod blok koji kaže da nakon sadašnjeg bajt slijedi pod blok veličine 0 bajtova. Grafički prikaz ove metode prikazuje Slika 8. gdje vidimo da se postupak ponavlja. 6

Slika 8. - Podaci slike 2.8 Dodaci običnog teksta, aplikacije i komentara Idući blokovi koji mogu slijediti nakon podataka slike, a nisu prikazana u primjeru jesu dodatak običnog teksta (eng. plain text extension), dodatak aplikacije (eng. application extension) i dodatak komentara (eng. comment extension). Kao i svi blokovi dodatka svaki od ta tri bloka za prvi bajt poprimaju ASCII vrijednost 21. Kod dodatka običnog teksta idući bajt koji slijedi jest oznaka običnog teksta. ASCII vrijednost 01 koristi se kako bi izdvojio običan tekst od svih ostalih dodataka. Njegov idući bajt označava veličinu bloka i radi na sličan način na koji rade podaci slike. Ako radimo s dodatkom aplikacije idući bajt poprimit će ASCII vrijednosti FF kojim se aplikacija izdvaja od svih ostalih dodataka. Nakon toga idući bajt označava veličinu bloka čija je ASCII vrijednost 0B i ona sadrži dvije informacije. Prvih 8 bitova označava koji se aplikacijski identifikator koristi, a preostala 3 bita označavaju ovjeru koda aplikacije. Nakon toga slijede podaci aplikacije koji su definirani na isti način na koji su definirani podaci slike. Ono što je bitno za naglasiti jest da ovaj dodatak omogućuje da se ostvare animacije i ponavljaju iznova umjesto da se samo jednom izvrše. Zadnji dodatak definira dodatak komentara. Njegov idući bajt poprima ASCII vrijednost FE što definira oznaku za komentare i izdvaja ovaj dodatak od drugih. Nakon toga odmah se skače u pod blok gdje su spremljeni podaci komentara. U sva tri dodatka blok završava kada se dosegne pod blok veličine 0. 7

2.9 Podnožje Kada se prođu svi blokovi dodataka dolazi se na zadnji blok, blok podnožja (eng. trailer). Slika 9. prikazuje oblik tog bloka i s njim se označava da je čitanje datoteke došlo do kraja i definira se pomoću ASCII vrijednosti 3B. Slika 9. - Podnožje 8

Zaključak "Graphics Interchange Format" smatra se jednim od dva najpopularnija grafička formata za razmjenu slika. GIF format je manje prikladnim za prikaz boje u fotografijama i drugim slikama s kontinuiranom bojom, ali je prikladan za prikaz jednostavne slike poput jednobojne grafike ili logotipa. Postoje dva tipa formata GIFa: GIF87a i GIF 89a, no u današnje vrijeme pretežito se koristi format GIF89a. Glavna razlika između ta dva formata jest to što GIF89a podržava kašnjenje animacija i transparentnost boje. GIF datoteka formata GIF89a sastoji se od 11 blokova: zaglavlje, logički opis ekrana, globalna tablica boje, dodatka grafičkog upravljača, opisa slike, podataka slike, dodatka običnog teksta, dodatka aplikacije, dodatka komentara i podnožja. Blok podataka slike kompresira se korištenjem "Lempel-Ziv-Welch" (LZW) kompresije, a u dodatku aplikacije definiramo ponašanje naše animacije gdje možemo odrediti da se naša animacija može vrtjeti u petlji, a također možemo definirati transparentnost slike. GIF format također podržava tekstualni zapis, a podržava i komentare. 9

Literatura [1] CompuServe Incorporated, 15.07.1987., G I F (tm), https://www.w3.org/graphics/gif/spec-gif87.txt [2] CompuServe Incorporated, 31.07.1990., GRAPHICS INTERCHANGE FORMAT(sm), https://www.w3.org/graphics/gif/spec-gif89a.txt [3] CompuServe Incorporated, GIF File Format Summary, http://www.fileformat.info/format/gif/egff.htm [4] Matthew Flickinger, What's In A GIF - Bit by Byte, http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp [5] Matthew Flickinger, What's In A GIF - LZW Image Data, http://www.matthewflickinger.com/lab/whatsinagif/lzw_image_data.asp [6] Matthew Flickinger, What's In A GIF - Animation and Transparency, http://www.matthewflickinger.com/lab/whatsinagif/animation_and_transp arency.asp 10